从 spring 配置调用静态方法

2022-09-02 19:55:53

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

public MyClass {

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

}
<bean id="myBean" class="MyClass">
   <!-- invoke here -->
</bean>

答案 1
  1. 当静态方法创建MyClass的实例时,您可以像这样操作

配置

<bean id="myBean" class="MyClass" factory-method="staticMethod">
   <!-- invoke here -->
</bean>

法典

public static MyClass staticMethod() {
       //create and Configure a new Instance
}
  1. 如果你只想在bean实例化上调用该方法,则弹簧不能这样做。

配置

<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();
}

答案 2

试试这个

<bean id="b1" class="org.springframework.beans.factory.config.MethodInvokingBean">
    <property name="staticMethod" value="MyClass.staticMethod" />
</bean>

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


推荐