 
            spring事件监听
1.定义事件
1)定义自定义事件类,继承ApplicationEvent,通过在构造方法中执行父类ApplicationEvent的构造方法,传入事件中需要的操作数据。
public class CustomEvent extends ApplicationEvent {
    public CustomEvent(String source) {
        super(source);
    }
}2.推送事件
1)注入ApplicationEventPublisher实例
    @Resource
    private ApplicationEventPublisher applicationEventPublisher;2)通过publishEvent方法来发送事件
        //创建事件
        CustomEvent customEvent=new CustomEvent("张三");
        //发送事件
        applicationEventPublisher.publishEvent(customEvent);3.订阅事件
1.第一种方式
通过@EventListener来监听事件,其中被标记的方法的参数为监听的事件类型
     @EventListener
    public void handleEvent(CustomEvent event){
        String source = (String)event.getSource();
        log.info("==================sub1订阅  {}  成功==================",source);
    }2.第二种方式
通过实现ApplicationListener<CustomEvent>接口,并实现其方法onApplicationEvent,做到事件监听
@Service
@Slf4j
public class Sub2 implements ApplicationListener<CustomEvent> {
    
    /**第二种监听事件方法
     * 通过ApplicationListener来监听自己定义的CustomEvent事件,一但此事件发布成功,就立即被这边监听器监听到,其中event.getSource()是事件中封装的数据
     * @param event
     */
    @Override
    public void onApplicationEvent(CustomEvent event) {
        String source = (String)event.getSource();
        log.info("==================sub1订阅  {}  成功==================",source);
    }
}
            本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 王德明
        
     评论
            
                匿名评论
                隐私政策
            
            
                你无需删除空行,直接评论以获取最佳展示效果
            
         
            
         
        
    