设计模式之Spring中观察者模式
观察者模式
定义
对象之间存在⼀对多或者⼀对⼀依赖,当⼀个对象改变状态,依赖它的对象会收到通知并⾃动更新。MQ其实就属于⼀种观察者模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。
优点
1.观察者和被观察者是抽象耦合的。
读者文摘精选100篇2.建⽴⼀套触发机制。巴比伦的陷落
缺点
1、如果⼀个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。
香干炒韭菜
核桃露2、如果在观察者和观察⽬标之间有循环依赖的话,观察⽬标会触发它们之间进⾏循环调⽤,可能导致系统崩溃。
1.Spring观察者模式
==ApplicationContext ==事件机制是观察者设计模式的实现,通过 ApplicationEvent类和 ApplicationListener 接⼝,可以实现ApplicationContext事件处理。
如果容器中有⼀个 ApplicationListener Bean ,每当 ApplicationContext 发布 ApplicationEvent 时,ApplicationListener Bean 将⾃动被触发。这种事件机制都必须需要程序显⽰的触发。
体癣是怎么引起的其中spring有⼀些内置的事件,当完成某种操作时会发出某些事件动作。⽐如监听 ContextRefreshedEvent事件,当所有的bean都初始化完成并被成功装载后会触发该事件,实现 ApplicationListener接⼝可以收到监听动作,然后可以写⾃⼰的逻辑。
同样事件可以⾃定义、监听也可以⾃定义,完全根据⾃⼰的业务逻辑来处理。
对象说明:
1、ApplicationContext容器对象大学转专业申请书
元宵象征着什么2、ApplicationEvent事件对象(ContextRefreshedEvent容器刷新事件)
3、ApplicationListener事件监听对象
2. ApplicationContext事件监听
当ApplicationContext内的Bean对象初始化完成时,此时可以通过监听 ContextRefreshedEvent 得到通知!
26个字母顺序将对象添加到容器中
应⽤场景:
程序启动,初始化过程中,需要确保所有对象全部初始化完成,此时在从容器中获取指定对象做相关初始化操作。 例如:将省、市、区信息初始化到缓存中。