Salut, Vu qu'on récupère des projets qui utilise Spring :(. J'ai rechercher comment faire en sorte que les propriétés soient données par ApplicationConfig et non pas un simple fichier properties du classpath. Voici la définition qu'il faut utiliser ------------8<------------8<------------8<------------8<------------8<------------8<------------ <!-- on construit un ApplicationConfig en forcant le nom du fichier de config --> <bean id="appConfigUnParsed" class="org.nuiton.util.ApplicationConfig"> <constructor-arg type="java.lang.String" value="monapplication.properties"/> </bean> <!-- ajouter ici l'appel au loadDefaultOptions --> <!-- on appel la methode parse qui permet de simule une factory --> <bean id="appConfig" factory-bean="appConfigUnParsed" factory-method="parse"> <constructor-arg><null/></constructor-arg> </bean> <!-- on demande les properties --> <bean id="propertiesConfig" factory-bean="appConfig" factory-method="getFlatOptions" /> <!-- on utilise ces properties comme valeur pour le placeholder --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="properties" ref="propertiesConfig" /> </bean> ------------8<------------8<------------8<------------8<------------8<------------8<------------ Et ca marche :). Le petit soucis est que spring ne veut appeler que des set.... or on a besoin de loadDefaultOptions. J'ai pas essayer mais normalement un truc du genre ce qui suit devrait fonctionner. ------------8<------------8<------------8<------------8<------------8<------------8<------------ <bean id="caller" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="targetObject" ref="appConfigWebUnParsed" /> <property name="targetMethod" value="loadDefaultOptions" /> <property name="arguments"> <list> <value>???</value> </list> </property> </bean> ------------8<------------8<------------8<------------8<------------8<------------8<------------ Donc veut qu'a priori ApplicationConfig devrait sortir dans son propre module. Il faudrait qu'on est une reflexion sur les modifications a apporter: Solution 1: Modification d'Application config entre autre - Hériter de Properties - faire en sorte que parse soit appelable plusieurs fois et qu'il le soit au moins une fois après la construction de l'objet - Avoir dans les paramètres de construction la possibilite de passer directement les OptionDef Solution 2: Création d'un objet factory qui a les methodes qui vont bien et qui retourne un ApplicationConfig pret a l'emploi. Je pense que Hériter tout de meme de Properties pourrait etre une bonne chose. Solution 3: ???? Par exemple le code precedent avec la solution 1 donnerait: ------------8<------------8<------------8<------------8<------------8<------------8<------------ <!-- on construit un ApplicationConfig en forcant le nom du fichier de config --> <bean id="appConfig" class="org.nuiton.util.ApplicationConfig"> <constructor-arg type="java.lang.String" value="monapplication.properties"/> </bean> <!-- on utilise appConfig comme valeur pour le placeholder --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="properties" ref="appConfig" /> </bean> ------------8<------------8<------------8<------------8<------------8<------------8<------------ a vos propositions -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com http://www.codelutin.com