Spring ApplicationListener的使用详解
介绍
Spring ApplicationListener 是Spring事件机制的一部分,与ApplicationEvent抽象类结合完成ApplicationContext的事件通知机制.
ContextRefreshedEvent事件监听
以Spring的内置事件ContextRefreshedEvent为例,当ApplicationContext被初始化或刷新时,会触发ContextRefreshedEvent事件.如下代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 | @Component public class LearnListener implements ApplicationListener<ContextRefreshedEvent> { @Override public void onApplicationEvent(ContextRefreshedEvent event) { //获取所有的bean String[] definitionNames = event.getApplicationContext().getBeanDefinitionNames(); for (String name : definitionNames) { //打印名称 System.out.println( "name = " + name); } } } |
自定义事件
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //继承ApplicationEvent 抽象类就可以自定义事件模型 public class MyEvent extends ApplicationEvent { private Long id; private String message; public MyEvent(Object source) { super (source); } public MyEvent(Object source, Long id, String message) { super (source); this .id = id; this .message = message; } //get set 方法省略 } |
1 2 3 4 5 6 7 8 | //实现ApplicationListener接口 @Component public class MyListener implements ApplicationListener<MyEvent> { @Override public void onApplicationEvent(MyEvent event) { System.out.println( "监听到事件: " +event.getId()+ "\t" +event.getMessage()); } } |
测试
1 2 3 4 5 6 7 8 9 10 11 12 13 | @SpringBootTest @RunWith (SpringRunner. class ) public class ListenerTest { @Autowired private ApplicationContext applicationContext; @Test public void testListenner() { MyEvent myEvent = new MyEvent( "myEvent" , 9527L, "十二点了 该吃饭了~" ); applicationContext.publishEvent(myEvent); // System.out.println("发送结束"); } } |
结果
到此这篇关于Spring ApplicationListener的使用详解的文章就介绍到这了,更多相关Spring ApplicationListener 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
Java Stream比较两个List的差异并取出不同的对象四种方法
今天开发一个需求时要对A和B两个List集合遍历,并比较出集合A有,而集合B没有的值,下面这篇文章主要给大家介绍了关于Java Stream比较两个List的差异并取出不同对象的四种方法,需要的朋友可以参考下2024-01-01剑指Offer之Java算法习题精讲N叉树的遍历及数组与字符串
跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化2022-03-03
最新评论