springboot源码(六)
springboot自定义监听器
代码:
package com.syc.demo.listener;
public class MyListener implements ApplicationListener<ApplicationEvent>{ public void onApplicationEvent(ApplicationEvent applicationEvent){ System.out.println("MyListener--->"+applicationEvent); } }
在resources下创建META-INF/spring.factories文件
代码:
org.springframework.context.ApplicationListener=\ com.syc.demo.listener.MyListener
3、如果监听特定事件呢?比如:ApplicationStartingEvent
就把泛型中ApplicationEvent替换成ApplicationStartingEvent即可。
代码:
package com.syc.demo.listener;
public class MyListener implements ApplicationListener<ApplicationStartingEvent>{
public void onApplicationEvent(ApplicationEvent applicationEvent){
System.out.println("MyListener--->"+applicationEvent);
}
}
配置文件保持不变。
4、如果监听自定义监听器监听自定义事件呢?
首先创建自定义事件,只需要继承ApplicationEvent即可。
代码:
public class MyEvent extends ApplicationEvent{
public MyEvent(Object source){
super(source);
}
}
然后在自定义监听器中监听自定义事件
package com.syc.demo.listener;
public class MyListener implements ApplicationListener<MyEvent>{
public void onApplicationEvent(ApplicationEvent applicationEvent){
System.out.println("MyListener--->"+applicationEvent);
}
}
配置文件保持不变。
之后就可以在特定的业务场景中发布对应的事件了。
@RestController
public class EventController{
@Autowired
ApplicationContext context; //获取容器对象
@GetMapping("hello")
public String helloEvent(){
//发布自定义事件
context.publishEvent(new MyEvent(new Object()));
return "hello";
}
}


这样一来不光搞清楚了SpringBoot中的监听机制,而且也可以扩展应用到我们业务开发中了。好了本文就给大家介绍到这里,希望对你有所帮助。
萝莉身,御姐心。。。。。
浙公网安备 33010602011771号