zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    抽象类abstract
    final关键字特点
    继承ExtendsFour
    继承(继承中构造方法的关系)
    继承ExtendsTwo-super&this
    继承ExtendsOne
    静态
    构造方法与setXxx方法
    15.8
    15.7
  • 原文地址:https://www.cnblogs.com/lm970585581/p/9813651.html
Copyright © 2011-2022 走看看