是否可以在Spring配置文件中調用靜態方法?從spring配置調用靜態方法配置
public MyClass {
public static void staticMethod() {
//do something
}
}
<bean id="myBean" class="MyClass">
<!-- invoke here -->
</bean>
是否可以在Spring配置文件中調用靜態方法?從spring配置調用靜態方法配置
public MyClass {
public static void staticMethod() {
//do something
}
}
<bean id="myBean" class="MyClass">
<!-- invoke here -->
</bean>
試試這個
<bean id="b1" class="org.springframework.beans.factory.config.MethodInvokingBean">
<property name="staticMethod" value="MyClass.staticMethod" />
</bean>
MethodInvokingFactoryBean還假定該方法具有返回值。 – 2014-12-04 14:48:34
配置
<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();
}
不知道爲什麼這個答案被低估了......它比提案表決答案更準確地回答了這個問題。 – 2015-03-30 13:11:30
這是正確的路要走。 +1 – Stefan 2015-10-21 08:47:12
嘗試是這樣的:
<!-- 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
我需要調用一個靜態方法服用。上面的代碼工作正常。
如果您正在使用Spring配置可以添加下面的方法到您的@Configuration類註釋:
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean() {
MethodInvokingFactoryBean methodInvokingFactoryBean = new MethodInvokingFactoryBean();
methodInvokingFactoryBean.setStaticMethod("MyClass.staticMethod");
return methodInvokingFactoryBean;
}
是什麼STATICMETHOD辦?初始化bean? – 2014-12-04 14:18:42
爲了讓spring自動調用它,它必須屬於某個spring bean。從配置中調用它沒有意義。 – 2014-12-04 14:18:47
靜態方法初始化myClass的實例 – LucaA 2014-12-04 14:47:45