springboot自带的事件驱动模型使用
Springboot框架自行封装了一套发布订阅模式可以供我们日常开发的使用
##自定义事件类
在springboot中继承 ApplicationEvent类可以实现自定义事件
下面是示例代码:
public class TestEvent extends ApplicationEvent {
private String message;
public TestEvent(Object source, String message) {
super(source);
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
##定义事件监听组件
只要实现ApplicationListner
public class TestEventListerner implements ApplicationListener<TestEvent> {
/**
* Handle an application event.
*
* @param event the event to respond to
*/
public void onApplicationEvent(TestEvent event) {
System.out.println(this.getClass() + " message is " + event.getMessage() + ", source is :" + event.getSource());
}
}
事件发布
ApplicationContext applicationContext = SpringApplication.run(WebTestApplication.class, args);
TestEvent test = new TestEvent("test-code", "测试事件发生");
applicationContext.publishEvent(test);