• SpringBoot事件监听


    代码演示:

    package com.boot.event.eventdemo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ConfigurableApplicationContext;
    
    @SpringBootApplication
    public class EventDemoApplication {
    
        public static void main(String[] args) {
            SpringApplication app = new SpringApplication(EventDemoApplication.class);
            //第一种方式 添加监听事件
            // app.addListeners(new MyApplicationListener());
            ConfigurableApplicationContext context = app.run(args);
            // 发布事件
            context.publishEvent(new MyApplicationEvent(new Object()));
    
            context.close();
        }
    }
    package com.boot.event.eventdemo;
    
    import org.springframework.context.event.ContextClosedEvent;
    import org.springframework.context.event.EventListener;
    import org.springframework.stereotype.Component;
    
    @Component
    public class HandlerEvent {
    //第四种方式,最常用方式    
        @EventListener(MyApplicationEvent.class)
        public void handlerEvent(MyApplicationEvent event) {
            System.out.println("接受到了事件====:"+event.getClass());
            System.out.println("接受到了事件====:"+event.getSource());
        }
    
        @EventListener(ContextClosedEvent.class)
        public void handlerEvent1(Object event) {
            System.out.println("接受到了事件:"+event.getClass());
        }
    }
    package com.boot.event.eventdemo;
    
    import org.springframework.context.ApplicationEvent;
    
    public class MyApplicationEvent extends ApplicationEvent {
        public MyApplicationEvent(Object source) {
            super(source);
        }
    }
    package com.boot.event.eventdemo;
    
    import org.springframework.context.ApplicationListener;
    
    //第二种方式 @Component
    public class MyApplicationListener implements ApplicationListener<MyApplicationEvent> {
    
        @Override
        public void onApplicationEvent(MyApplicationEvent event) {
            System.out.println("接受到了事件:"+event.getClass());
            System.out.println("接受到了事件:"+event.getSource());
        }
    }

    application.properties

    #第三种方式 
    context.listener.classes=com.boot.event.eventdemo.MyApplicationListener

    使用第四种方式配置监听器的打印结果:

  • 相关阅读:
    Spring三大器
    SpringBoot启动过程
    linux常用命令
    Controller当中的参数与返回值
    Spring加载context的几种方法
    Spring基础(imooc)
    SpringMVC框架学习
    Spring MVC(imooc)
    springAOP基础
    《别傻了,你的中年危机真不是因为穷》
  • 原文地址:https://www.cnblogs.com/lm970585581/p/9813651.html
Copyright © 2020-2023  润新知