如何通过 spring 4 中的注解设置默认 bean 初始化方法?

how to set default beans init-method by annotations in spring 4?

我正在学习使用 Spring 4 by Java 注释,我找不到如何在不添加 @PostContruct 注释的情况下为属于特定配置的所有 bean 设置默认初始化方法在所有类中初始化方法,既不让它们实现 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 的配置容器上设置默认的 beans 配置。那可能吗?问候

编辑:我真正想做的是在我在 BeansConfigurations class 中创建的所有 bean 上默认告诉 spring 到 运行 "initialize" 方法。这意味着,放置一些注释或确定所有包含的 bean 默认情况下将 运行 此初始化方法。但正如我之前所说,我不想接触 beans classes,我的意思是,我不想为每个 bean class 的每个初始化方法添加 @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")

如果我对您的问题的理解正确,您希望每个 bean 运行 它的 init 方法(如果它有一个)而不在配置文件中声明所有这些方法。我想你自己的 post 已经有了答案,它是 default-init-method="init"。在要初始化的 bean 类 中,在每个 bean 中实现一个 public void init() 方法。它们都会在应用程序启动时被调用。