簡體   English   中英

如何在Spring 4中通過注釋設置默認的bean初始化方法?

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

我正在學習使用Spring 4 by Java批注,並且我找不到如何為屬於特定配置的所有bean設置默認的init-method,而沒有在所有情況下都添加@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默認情況下將運行此initialize方法的東西。 但是正如我之前所說,我不想接觸Bean類,我的意思是,我不想為每個Bean類的每個initialize方法添加@PostConstructor批注,並且我不希望每個Bean都實現InitializeBean接口要么

您可以執行以下操作:

@Configuration
public class SomeConfig {

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

您將對要調用initMethodName每個bean重復該操作。

你可以把它一步,實現元注解

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

和簡單地使用@MyBean代替@Bean(initMethod = "initMethodName")SomeConfig

如果我正確理解了您的問題,則希望每個bean運行其init方法(如果有),而不在配置文件中聲明所有方法。 我認為您自己的帖子已經有了答案,它是default-init-method="init" 在要初始化的bean類中,在每個類中實現一個public void init()方法。 應用程序啟動時將全部調用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM