比方說,我對語言的變化事件在我的應用程序(它是基於Vaadin)的接口:註冊自動豆番石榴EventBus與Spring IoC的
public interface ILanguageChangeListener{
@Subscribe onLanguageChange(LanguageChangeEvent event);
}
而且我有很多豆子實現此接口與註解@Component,因此它們在Spring IoC中可用。我也有一個EventBus豆:
<bean id="languageSwitcher" class="com.google.common.eventbus" scope="session" />
現在,從國際奧委會得到任何bean的實例後,我也得到languageSwitcher的實例,並在其與註冊newely創建豆:
languageSwitcher.register(myNewBean);
爲了接收這個事件。是否有可能以某種方式告訴IoC,我想在每個實現ILanguageChangeListener的新bean上調用languageSwitcher bean的註冊方法?
好的,爲什麼不爲你的EventBus創建一個工廠bean,它獲得注入的ILanguageChangeListeners列表並且只是在一個循環中註冊它們......它的手冊,但是你不必把代碼註冊到每個bean裏面ILanguageChangeListener的實例。 – ElderMael
因爲我沒有在開始時聽到這個事件的所有對象 - 請參閱我對@mael答案的評論。 – fracz
然後也許你的ILanguageChangeListener實現[BeanPostProcessor](http://static.springsource.org/spring/docs/3.1.3.RELEASE/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html) 。我假設他們是原型? – ElderMael