编程语言
首页 > 编程语言> > java – 如何在Spring 4中通过注释设置默认bean init-method?

java – 如何在Spring 4中通过注释设置默认bean init-method?

作者:互联网

我正在学习使用Spring 4 by Java注释,我无法找到如何将默认的init-method设置为属于特定配置的所有bean,而无需在所有clases中添加@PostContruct注释初始化方法,也不会使它们实现InitializeBean界面……我只是想做这样的事情:

<beans default-init-method="init">

    <bean id="blogService" class="com.foo.DefaultBlogService">
    </bean>

    <bean id="anotherBean" class="com.foo.AnotherBean">
    </bean>

</beans>

所以,我想通过Java注释做到这一点,我想在bean的配置容器上设置默认bean配置.那可能吗?问候

编辑:我真正想要做的是告诉spring默认在我在BeansConfigurations类中创建的所有bean上运行“initialize”方法.这意味着,在默认情况下,放置一些注释或确定所有包含的bean将运行此初始化方法的内容.但正如我之前所说,我不想触及bean类,我的意思是,我不想为每个bean类的每个初始化方法添加@PostConstructor注释,我不希望每个bean都实现InitializeBean接口或

解决方法:

您可以执行以下操作:

@Configuration
public class SomeConfig {

   @Bean(initMethod = "initMethodName")
   public SomeBeanClass someBeanClass() {
      return new SomeBeanClass();
   }
}

您将为要调用initMethodName的每个bean重复此操作.

你可以更进一步,实现meta-annotation之类的

@Bean(initMethod = "initMethodNAme")
public @interface MyBean {
}

并在SomeConfig中简单地使用@ MyBean而不是@Bean(initMethod =“initMethodName”)

标签:java,dependency-injection,spring,annotations,spring-4
来源: https://codeday.me/bug/20190519/1138095.html