自定义事件
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实战
网友评论