![](/img/trans.png)
[英]Nesting abstract beans in Spring and init-method does not seem to work
[英]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.