salut a tous;
je bosse sur une application java utilisant Spring.
J'ai un bean du type :
qui charge automatiquement les valeurs des données placée dans application.properties dans les beans ayant ce données comme propriété. Ex:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <bean id="propertyConfigurer" class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer"> <constructor-arg ref="configurationEncryptor" /> <property name="locations"> <list> <value>application.properties</value> </list> </property> </bean>
et dans le application.properties je renseigne par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <bean id="configController" class="fr.test.controllers.ConfigController"> <description> bean qui récupère et vérifie le renseignements des paramètres obligatoires. </description> <property name="urls" value="${ldap.urls}"/> <property name="ldapFilters" value="${ldap.filters}"/> <property name="xmlpath" value="${xml.creationPath}"/> <property name="xmlMapping" value="${xml.mapping}"/> </bean>
Tout cela fonctionne. Cependant j'aimerai que les utilisateurs puissent si ils le désirent placer un autre fichier properties (voir plusieurs pour lancer autant de fois le traitement) en parametre du programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ldap.urls=ldap://ldap1.mon-ldap.fr:392
J'aimerais donc pouvoir faire:
Le probleme est que les proprietes sont chargées lors de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 //récupération des beans: ApplicationContext ctx = new ClassPathXmlApplicationContext("springbeans.xml"); if(args.length>0){ EncryptablePropertyPlaceholderConfigurer eppc = (EncryptablePropertyPlaceholderConfigurer)ctx.getBean("propertyConfigurer"); String fic_prop=args[0]; eppc.setLocation(new FileSystemResource(fic_prop)); }
le changement que je fais apres n'est pas pris en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 new ClassPathXmlApplicationContext("springbeans.xml");
Y'a -t-il un moyen de recharger tous les beans utilisant les properties une fois le changement de fichier effectuer; un truc du genre : eppc.reloadAll();
Merci d'avance pour votre aide![]()
Partager