春季-侦听依赖的Bean更改

时间:2018-12-20 02:48:02

标签: java spring spring-boot

在spring应用程序中,我有BeanX,BeanY和BeanZ使用的BeanA。当BeanA在其生命周期中发生更改时,我希望BeanX,BeanY和BeanZ得到通知。有什么现成的方法可以实现这一目标吗?

2 个答案:

答案 0 :(得分:1)

Spring通过ApplicationContext类和ApplicationEvent接口在ApplicationListener中提供事件处理。

支持以下事件类型,可以将其用于事件处理。

ContextRefreshedEvent
ContextStartedEvent
ContextStoppedEvent
ContextClosedEvent
RequestHandledEvent

要监听上下文事件,bean应该实现ApplicationListener接口,该接口只有一个方法onApplicationEvent()

答案 1 :(得分:0)

为此,您将必须实现观察者模式

在春季,ApplicationContext的事件机制中使用了观察者模式。部署实现ApplicationListener接口的bean时,事件发布者每次发布事件都会收到ApplicationEvent

如果要创建自己的自定义事件,则事件发布者必须实现ApplicationEventPublisherAware接口。发布者可以通过调用ApplicationEvent实例的publishEvent()方法来发布ApplicationEventPublisher