我正在大量使用Spring来开发一个应用程序,我想知道是否有一种方法来注册可以在定义bean时使用的自定义方法。目前我正在使用ClassPathXmlApplicationContext
从XLM文件加载bean定义,然后在XML文件中我想做类似的事情
<bean id="bean1" class="..." scope="prototype"
p:some_property='"hello" + #getCorrelativeNumber()/>
然后应将some_property
评估为hello0
。我知道我可以使用SpEL的StandardEvaluationContext来注册自定义函数,但是我无法想象如何在ApplicationContext
的上下文中完成这项工作。
非常感谢任何帮助。
答案 0 :(得分:0)
请参阅此blog,查看显示创建应用程序上下文的部分,其中表达式用于注入值
<bean id="engine" class="com.baeldung.spring.spel.Engine">
<property name="capacity" value="3200"/>
<property name="horsePower" value="250"/>
<property name="numberOfCylinders" value="6"/>
</bean>
<bean id="someCar" class="com.baeldung.spring.spel.Car">
<property name="make" value="Some make"/>
<property name="model" value="Some model"/>
<property name="engine" value="#{engine}"/>
<property name="horsePower" value="#{engine.horsePower}"/>
</bean>