我正在使用Spring應用程序事件向其他bean發送信息。有一個bean A只要A被初始化就發佈一個事件。還有就是偵聽由A.在春天缺少事件
取決於是其他豆類中的初始化時發送的事件豆B,B被初始化到晚了,錯過由A.
如何發送事件它是否打算在春季避開這些問題?除了更改bean初始化順序之外,還有其他什麼方法嗎?
我正在使用Spring應用程序事件向其他bean發送信息。有一個bean A只要A被初始化就發佈一個事件。還有就是偵聽由A.在春天缺少事件
取決於是其他豆類中的初始化時發送的事件豆B,B被初始化到晚了,錯過由A.
如何發送事件它是否打算在春季避開這些問題?除了更改bean初始化順序之外,還有其他什麼方法嗎?
一個可能的方法是使用
取決於上
attribute.You可以定義你正在使用
xml配置的情況下,依賴關係:
<bean id="A" depends-on="B"/>
註釋:
@DependsOn("B")
public class A {}
這迫使彈簧並初始化B A之前,這樣就不會錯過由A.
不是XML,你可以(也應該)使用相應的[註釋](HTTP:// docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/DependsOn.html)。 –
我相信你已經提到了基於註釋的鏈接而不是xml ..它並沒有打開,雖然plz驗證。 OP沒有提到他是基於XML還是Annotation。 – mhasan
是的,我爲了完整性而鏈接了相應的註釋,所以OP可以選擇其中之一。 –
公佈的事件您可以在豆類創建init()
方法,然後在你的main
功能作出init()
方法的調用每個豆的。您可以按照自己喜歡的方式訂購電話,特別是在B之前致電A的init()
。 然後你必須把A豆的事件發佈到A的init()
方法中。
檢查這個話題: http://stackoverflow.com/questions/13770225/spring-3-bean-instantiation-sequence – nowszy94