事件 —— Application Event

自定义事件

public class DemoEvent extends ApplicationEvent{

    private static final long serialVersionUID = 1L;
    //交互的信息
    private String msg;
    
    //
    public DemoEvent(Object source , String msg) {
        super(source);
        this.msg = msg;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }   
}

事件的监听器

@Component
public class DemoListener implements ApplicationListener<DemoEvent>{
    public void onApplicationEvent(DemoEvent demoEvent) {
        String msg = demoEvent.getMsg();
        
        System.out.println("我[bean-demoListener]接受到了[DemoEvent]发布的消息:" + msg);
    }
}

事件发布

@Component
public class DemoPublisher {
    
    @Autowired
    ApplicationContext applicationContext;
    
    public void publisher(String msg) {
        //消息发布
        applicationContext.publishEvent(new DemoEvent(this, msg));
    }
}
//注入applicationContext ,调用publishEvent发布消息

配置类

@Configuration
@ComponentScan("com.wangzai.springboot.event.test")
public class EventConfig{}

启动类

public class Application {

    @SuppressWarnings("resource")
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(EventConfig.class);
        
        DemoPublisher demoPublisher = context.getBean(DemoPublisher.class);     
        
        demoPublisher.publisher("hello ~ app Event");
        
        context.close();
        
    }
}

                                                                                        ——摘自springboot实战
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容