Spring ApplicationContext的自定义函数

时间:2018-01-23 16:12:21

标签: java spring applicationcontext

我正在大量使用Spring来开发一个应用程序,我想知道是否有一种方法来注册可以在定义bean时使用的自定义方法。目前我正在使用ClassPathXmlApplicationContext从XLM文件加载bean定义,然后在XML文件中我想做类似的事情

<bean id="bean1" class="..." scope="prototype"
    p:some_property='"hello" + #getCorrelativeNumber()/>

然后应将some_property评估为hello0。我知道我可以使用SpEL的StandardEvaluationContext来注册自定义函数,但是我无法想象如何在ApplicationContext的上下文中完成这项工作。

非常感谢任何帮助。

1 个答案:

答案 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>