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号