是否可以在Spring配置文件中调用静态方法?
public MyClass {
public static void staticMethod() {
//do something
}
}
<bean id="myBean" class="MyClass">
<!-- invoke here -->
</bean>
答案 0 :(得分:19)
配置
<bean id="myBean" class="MyClass" factory-method="staticMethod">
<!-- invoke here -->
</bean>
码
public static MyClass staticMethod() {
//create and Configure a new Instance
}
配置
<bean id="myBean" class="MyClass" init-method="init">
<!-- invoke here -->
</bean>
码
public static void staticMethod() {
//create and Configure a new Instance
}
public void init() {
staticMethod();
}
答案 1 :(得分:13)
试试这个
<bean id="b1" class="org.springframework.beans.factory.config.MethodInvokingBean">
<property name="staticMethod" value="MyClass.staticMethod" />
</bean>
答案 2 :(得分:1)
尝试这样的事情:
<!-- call static method -->
<bean id="test" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="MyClass" />
<property name="targetMethod" value="staticMethod" />
<property name="arguments">
<list>
<value>anArgument</value>
</list>
</property>
</bean>
删除参数,因为您可能不需要它们。
取自https://gist.github.com/bulain/1139874
我需要调用静态方法。上面的代码运行正常。
答案 3 :(得分:0)
如果您使用注释进行spring配置,可以将以下方法添加到@Configuration类中:
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean() {
MethodInvokingFactoryBean methodInvokingFactoryBean = new MethodInvokingFactoryBean();
methodInvokingFactoryBean.setStaticMethod("MyClass.staticMethod");
return methodInvokingFactoryBean;
}