Spring Boot事件监听

场景

项目要求使用springboot的ioc来管理bean,其他的业务逻辑自己现实。其中有一项需求是所有bean都初始化完成后,执行公司的初始化流程

原理

各种配置和初始化后通过事件调用下对应的事件处理函数

解决方案

基础知识

ApplicationContext事件机制是观察者设计模式的实现。Spring 的事件处理是单线程的,所以如果一个事件被发布,直至并且除非所有的接收者得到的该消息,该进程被阻塞并且流程将不会继续。因此,如果事件处理被使用,在设计应用程序时应注意。
Spring中有一些内置的容器事件(ApplicationContextEvent)如下:
ContextRefresheEvent:
ApplicationContext容器初始化或刷新时触发该事件。此处的初始化是指:所有的Bean被成功装载,后处理Bean被检测并激活,所有Singleton Bean 被预实例化,ApplicationContext容器已就绪可用
ContextStartedEvent:
当spring启动时,或者说是context调用start()方法时,会触发此事件
ContextStoppedEvent:
当spring停止时,或者说context调用stop()方法时,会触发此事件
ContextClosedEvent:
当spring关闭时,或者说context调用close()方法时,会触发此事件

实践

通过实现ApplicationListener接口,重写onApplicationEvent方法,接管ContextRefresheEvent

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 夜莺2517阅读 127,829评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 11,866评论 1 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,755评论 28 53
  • 兔子虽然是枚小硕 但学校的硕士四人寝不够 就被分到了博士楼里 两人一间 在学校的最西边 靠山 兔子的室友身体不好 ...
    待业的兔子阅读 7,535评论 2 9

友情链接更多精彩内容