从spring配置调用静态方法

Luc*_*caA 15 java xml spring static

是否可以在Spring配置文件中调用静态方法?

public MyClass {

   public static void staticMethod() {
       //do something
   }

}
Run Code Online (Sandbox Code Playgroud)
<bean id="myBean" class="MyClass">
   <!-- invoke here -->
</bean>
Run Code Online (Sandbox Code Playgroud)

Han*_*dez 19

  1. 当静态方法创建MyClass的实例时,你就是这样做的

配置

<bean id="myBean" class="MyClass" factory-method="staticMethod">
   <!-- invoke here -->
</bean>
Run Code Online (Sandbox Code Playgroud)

public static MyClass staticMethod() {
       //create and Configure a new Instance
}
Run Code Online (Sandbox Code Playgroud)
  1. 如果你想只在bean实例化上调用方法spring就不能这样做.

配置

<bean id="myBean" class="MyClass" init-method="init">
   <!-- invoke here -->
</bean>
Run Code Online (Sandbox Code Playgroud)

public static void staticMethod() {
       //create and Configure a new Instance
}

public void init() {
     staticMethod();
}
Run Code Online (Sandbox Code Playgroud)

  • 不知道为什么这个答案被低估了...它比IMO的最高投票答案更准确地回答了这个问题. (2认同)

Evg*_*eev 14

试试这个

<bean id="b1" class="org.springframework.beans.factory.config.MethodInvokingBean">
    <property name="staticMethod" value="MyClass.staticMethod" />
</bean>
Run Code Online (Sandbox Code Playgroud)

请参阅http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/config/MethodInvokingBean.html