如何通过 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()
方法。它们都会在应用程序启动时被调用。
我正在学习使用 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()
方法。它们都会在应用程序启动时被调用。