Les choses que j'ai faites sont:
Propertyfile: url = sampleurl
Spring.xml:
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath*:data.properties*"/>
</bean>
<bean id="dataSource" class="org.tempuri.DataBeanClass">
<property name="url" value="${url}"></property>
</bean>
classe de haricots
public class DataBeanClass extends PropertyPlaceholderConfigurer{
private String url;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
entrée dans web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:Spring*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Maintenant, mon problème est que je ne sais pas quelle méthode de PropertyPlaceholderConfigurer devrais-je remplacer et que devrais-je faire pour définir la valeur de la variable url de sorte que je puisse l'appeler depuis d'autres classes à l'aide de la méthode getproperty ().
Vous pouvez annoter votre propriété de bean comme ceci, puis spring l'injectera automatiquement à partir de votre fichier de propriété.
@Value("${url}")
private String url;
Vous n'avez pas besoin d'étendre PropertyPlaceholderConfigurer
Définir votre bean comme ceci va automatiquement peupler l'URL, mais l'annotation semble être le moyen le plus simple
<bean id="dataSource" class="org.tempuri.DataBeanClass">
<property name="url" value="${url}"></property>
</bean>
Veuillez effectuer le processus suivant pour obtenir la valeur du fichier de propriétés en classe.
Définissez le bean pour le fichier de propriétés dans votre spring.xml<util:properties id="dataProperties" location="classpath:/data.properties"/>
conservez vos data.properties sous src/main/resources.
Utilisez le code suivant pour obtenir la valeur du fichier de propriétés, par exemple, pour obtenir la valeur de la clé url dans data.properties.
private @Value("#{dataProperties['url']})
String url;
Les fichiers de propriétés peuvent être rendus accessibles à Spring via l'élément de l'espace de noms suivant dans Spring.xml
<context:property-placeholder location="classpath:data.properties" />
Et puis vous pouvez utiliser comme
@Autowired
private Environment env;
...
String url=env.getProperty("url"));
Remarque:
l'utilisation de <property-placeholder>
n'exposera pas les propriétés à l'environnement Spring. Cela signifie que l'extraction de la valeur comme celle-ci ne fonctionnera pas - elle retournera null