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中的监听机制,而且也可以扩展应用到我们业务开发中了。好了本文就给大家介绍到这里,希望对你有所帮助。
萝莉身,御姐心。。。。。