springboot(2.0) applicationEvent的使用
作用:Application Event为Bean和Bean之间的消息通讯提供支持。
github:aplicationEvent
项目名:springboot-basic-applicationevent
1.项目与配置顺序说明
1.1配置顺序
- 创建DemoEvent(信息发送源类),继承ApplicationEvent,并重写构造方法
- 创建DemoListener(信息接受类),实现implements
ApplicationListener,并使用@Component注解(重要),并重写onApplicationEvent方法来监听 - 创建DemoPublisher(信息发送类),并使用@Component注解,使用applicationContext去实现publishEvent方法来发布
2.配置详情
2.1创建DemoEvent(信息发送源类)
public class DemoEvent extends ApplicationEvent {
private static final Long serialVersionUID = 1l;
// 定义信息
private String message;
// 继承重写构造方法
public DemoEvent(Object source,String message) {
super(source);
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
2.1创建DemoListener(信息接受类)
@Component
public class DemoListener implements ApplicationListener<DemoEvent> {
// 对消息进行处理
@Override
public void onApplicationEvent(DemoEvent demoEvent) {
String message = demoEvent.getMessage();
System.out.println(message+" 已接受的信息");
}
}
2.3创建DemoPublisher(信息发送类)
@Component
public class DemoPublisher {
@Resource
private ApplicationContext applicationContext;
public void publish(String message){
applicationContext.publishEvent(new DemoEvent(this,message));
}
}
3.测试用例
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationEvent {
@Resource
private DemoPublisher demoPublisher;
@Test
public void event(){
demoPublisher.publish("你好吗");
}
}