gpt4 book ai didi

java - 从 Spring 托管 bean 向监听器发送事件

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:26 25 4
gpt4 key购买 nike

我想在我的存储库层中创建一个事件通知程序,以便我可以添加监听器。我正在使用 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();
}
...

上下文.xml

<context:annotation-config />
<bean id="l1" class="InsertListener" />
<bean id="l2" class="InsertListener" />
<bean id="repo" class="JdbcRepository" />

关于java - 从 Spring 托管 bean 向监听器发送事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15545368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com