我們使用Springframework。是否可以從ApplicationContext.xml中的java類訪問現有的變量?可能訪問ApplicationContext.xml中的java變量?
例如,我們有一個線程編號的類,它在5上初始化。有沒有辦法在applicationcontext中讀取'5',所以我們可以使用它來注入其他Java類?
如果是,如何?
親切的問候,
WALLE
我們使用Springframework。是否可以從ApplicationContext.xml中的java類訪問現有的變量?可能訪問ApplicationContext.xml中的java變量?
例如,我們有一個線程編號的類,它在5上初始化。有沒有辦法在applicationcontext中讀取'5',所以我們可以使用它來注入其他Java類?
如果是,如何?
親切的問候,
WALLE
看看BeanPostProcessor
。它可能可以做你想做的事。
如果您使用Spring 3,您應該可以使用Spring EL來完成。退房http://static.springsource.org/spring/docs/3.1.0.M1/spring-framework-reference/html/expressions.html
下面是一個例子假設你想使用類mypackage.MyClass的公共靜態字段THREAD_NUMBER:
<bean id="myBean"
class="mypackage.AnotherClass">
<property name="theProperty">
<value>#{T(mypackage.MyClass).THREAD_NUMBER}</value>
</property>
</bean>
如果它不是一個靜態字段,但一個實例字段,你首先需要一個bean然後從Spring EL表達式調用適當的getter。
如果你不想使用EL或使用Spring的舊版本,
<bean id="myBean" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
<property name="staticField" value="MyClass.MY_STATIC_FIELD"/> </bean>