我有两个豆子:
ConfigurationManager中:
public class ConfigurationManager
{
private Configuration configuration;
public void init() { ... } // Loads a configuration
// Getters and setters
}
Run Code Online (Sandbox Code Playgroud)
数据中心:
public class DataCenter
{
private Configuration configuration;
...
// Getters and setters
}
Run Code Online (Sandbox Code Playgroud)
我想configuration
从我的DataCenter bean中获取ConfigurationManager 的字段,我不太清楚语法是什么.
这是我的上下文文件:
<bean id="configurationManager"
class="com.foo.ConfigurationManager"
init-method="init">
<property name="configurationFile" value="etc/configuration.xml"/>
</bean>
<bean id="dataCenter"
class="com.foo.DataCenter">
<!-- <property name="storages" ref="configurationManager."/> -->
</bean>
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我该怎么做?提前致谢!
Sot*_*lis 17
您可以使用Spring Expression Language按名称引用其他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>
Run Code Online (Sandbox Code Playgroud)
在你的情况下,你可以使用
<bean id="configurationManager"
class="com.foo.ConfigurationManager"
init-method="init">
<property name="configurationFile" value="etc/configuration.xml"/>
</bean>
<bean id="dataCenter"
class="com.foo.DataCenter">
<property name="storages" value="#{configurationManager.configuration}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
以类似的方式,您可以@Value
在@Bean
方法中使用注释 或在方法中使用它@Autowired
.
尝试这个
<bean id="dataCenter" class="com.foo.DataCenter">
<property name="configuration" value="#{configurationManager.configuration}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19548 次 |
最近记录: |