从Java代码填充Spring“属性”

时间:2012-07-31 14:39:16

标签: java spring

我有一个Java类MySettings,它从JSON文件/数据库/其他东西加载我的应用程序的属性。

我已将MySettings配置为Spring上下文中的bean。

<bean id="mySettings" class="com.myapp.MySettings" />

我现在想在spring上下文文件中使用mySettings中的一个值来获取不支持SpEL的内容,例如Spring Integration日志通道适配器,例如

<int:logging-channel-adapter id="logMessageToRemote" 
     logger-name="toRemote" level="#{mySettings.getRemoteLogLevel}"
     expression="payload" />

有没有办法设置可以使用SpEL填充的“属性”?

1 个答案:

答案 0 :(得分:2)

来自春季文档http://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/expressions.html#expressions-beandef

您也可以按名称引用其他bean属性,例如。

<bean id="numberGuess" class="org.spring.samples.NumberGuess">
   <property name="randomNumber" value="#{ T(java.lang.Math).random() * 100.0 }"/>
   <!-- other properties -->
</bean>


<bean id="shapeGuess" class="org.spring.samples.ShapeGuess">
  <property name="initialShapeSeed" value="#{ numberGuess.randomNumber }"/>
   <!-- other properties -->
</bean>

这是你要找的东西吗?