2011-04-01 114 views
0

我們使用Springframework。是否可以從ApplicationContext.xml中的java類訪問現有的變量?可能訪問ApplicationContext.xml中的java變量?

例如,我們有一個線程編號的類,它在5上初始化。有沒有辦法在applicationcontext中讀取'5',所以我們可以使用它來注入其他Java類?

如果是,如何?

親切的問候,

WALLE

回答

0

看看BeanPostProcessor。它可能可以做你想做的事。

2

如果您使用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。

1

如果你不想使用EL或使用Spring的舊版本,

<bean id="myBean" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean"> 
     <property name="staticField" value="MyClass.MY_STATIC_FIELD"/> </bean>