[英]Emitting events from spring managed bean to listeners
我想在“存儲庫”層中創建一個事件通知程序,以便添加偵聽器。 我正在使用Spring,我想知道這是否是一種不錯的方法嗎? 還是在Spring中有更好的方法來實現通知/監聽器?
@Repository
public class JdbcRepository {
private List<InsertListener> insertListeners;
public void insert(final SomeObject object) {
// Ommited code for brewity
for (InsertListener listener : insertListeners) {
listener.notifiy(...);
}
}
}
Spring配置XML
<bean id="jdbcRepository" class="mypackage.JdbcRepository">
<property>
<bean ref="myRepositoryListeners" />
</property>
</bean>
<bean id="myRepositoryListeners" class="java.util.List">
<constructor-arg>
<list>
<ref bean="..." />
<ref bean="..." />
</list>
</constructor-arg>
</bean>
你可以這樣
public class JdbcRepository {
@Autowired
ApplicationContext context;
Collection<InsertListener> listeners;
@PostConstruct
public void init() {
listeners = context.getBeansOfType(InsertListener.class).values();
}
...
的context.xml
<context:annotation-config />
<bean id="l1" class="InsertListener" />
<bean id="l2" class="InsertListener" />
<bean id="repo" class="JdbcRepository" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.