Java 如何从Springbean注入静态变量?
如何从Springbean注入静态变量Java 如何从Springbean注入静态变量?,java,spring,static-members,Java,Spring,Static Members,如何从Springbean注入静态变量 public class MyClass{ static String str; // how to set value to this variable through Spring } <b>Spring bean</b> <bean id='myclass' class = 'com.so.MyClass'> <property name="str" value="xmlpath"
public class MyClass{
static String str;
// how to set value to this variable through Spring
}
<b>Spring bean</b>
<bean id='myclass' class = 'com.so.MyClass'>
<property name="str" value="xmlpath" />
</bean>.
您可以对静态变量使用非静态setter
public void setStr(String str) {
your.package.MyClass.str = str;
}
在你的背景下:
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="yourMethod" value="your.packaged.MyClass.setStr"/>
<property name="arguments">
<list>
<ref bean="str"/>
</list>
</property>
</bean>
在属性标签中,属性名称将是staticMethod,根据我的判断这可能是重复的,但通常表明存在设计问题。完全不要使用statics。这使得您的代码难以正确测试。