【问题标题】:Populate Spring "property" from Java code从 Java 代码填充 Spring“属性”
【发布时间】:2012-07-29 08:50:06
【问题描述】:

我有一个 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 填充的“属性”?

【问题讨论】:

    标签: java spring


    【解决方案1】:

    来自春季文档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>
    

    这是您要找的东西吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      • 2012-08-08
      相关资源
      最近更新 更多