这篇文章主要为大家展示了Spring中如何使用ApplicationListener,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
介绍
Spring ApplicationListener 是Spring事件机制的一部分,与ApplicationEvent抽象类结合完成ApplicationContext的事件通知机制.
ContextRefreshedEvent事件监听
以Spring的内置事件ContextRefreshedEvent为例,当ApplicationContext被初始化或刷新时,会触发ContextRefreshedEvent事件.如下代码示例:
@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);
}
}
}
自定义事件
代码
//继承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接口
@Component
public 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的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。