J'ai des classes Java comme ceci:Comment construire un bean en utilisant des propriétés imbriquées dans applicationContext.xml?
public class Config {
public Config1 getConfigOpt1();
public Config2 getConfigOpt2();
}
public class SomeBean {
public Config getEntireConfig();
}
public class BeanToConstruct {
public static BeanToConstruct createAndStart(Config1 config1, Config2 config2)
}
SomeBean
Étant donné, je construirait BeanToConstruct comme ceci:
SomeBean someBean = ....
BeanToConstruct bean = BeanToConstruct.createAndStart(
someBean.getEntireConfig().getConfigOpt1(),
someBean.getEntireConfig().getConfigOpt2())
Comment puis-je faire dans mon applicationContext.xml? C'est essentiellement ce que je veux faire, mais cela ne marche évidemment pas. Je pourrais tirer l'ensemble de l'objet Config dans son propre bean, mais je ne veux pas avoir ce bean supplémentaire qui est seulement nécessaire pour rendre possible la construction de BeanToConstruct.
<bean class="com.example.SomeBean" id="someBean"/>
<bean class="com.example.BeanToConstruct" factory-method="createAndStart" id="myBean">
<constructor-arg>
<bean factory-bean="someBean" factory-method="getEntireConfig().getConfigOpt1()"/>
</constructor-arg>
<constructor-arg>
<bean factory-bean="someBean" factory-method="getEntireConfig().getConfigOpt2()"/>
</constructor-arg>
</bean>
Merci, a travaillé comme un charme! Je n'étais pas au courant de la syntaxe du langage d'expression. – wolfcastle