您的位置:首页技术文章
文章详情页

Spring ApplicationListener的使用详解

【字号: 日期:2023-09-03 14:27:45浏览:2作者:猪猪

介绍

Spring ApplicationListener 是Spring事件机制的一部分,与ApplicationEvent抽象类结合完成ApplicationContext的事件通知机制.

ContextRefreshedEvent事件监听

以Spring的内置事件ContextRefreshedEvent为例,当ApplicationContext被初始化或刷新时,会触发ContextRefreshedEvent事件.如下代码示例:

@Componentpublic 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); } }}

自定义事件

代码

//继承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 方法省略}

//实现ApplicationListener接口 @Componentpublic class MyListener implements ApplicationListener<MyEvent> { @Override public void onApplicationEvent(MyEvent event) { System.out.println('监听到事件: '+event.getId()+'t'+event.getMessage()); }}

测试

@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的使用详解的文章就介绍到这了,更多相关Spring ApplicationListener 内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!

标签: Spring
相关文章: