美文网首页
事件 —— Application Event

事件 —— Application Event

作者: _王仔 | 来源:发表于2017-12-05 11:01 被阅读78次

自定义事件

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实战

相关文章

网友评论

      本文标题:事件 —— Application Event

      本文链接:https://www.haomeiwen.com/subject/pbeqixtx.html