Spring 的事件监听最简单使用例子

185 阅读1分钟

创建一个事件

继承spring提供的通用事件ApplicationEvent实现自定义事件,也可以通过继承其他的spring提供的事件,实现一些额外的功能,比如ApplicationContextEvent

public class testEvent extends ApplicationEvent {

public testEvent(Object source) {
	super(source);
}
}

创建一个监听者

可以选择实现ApplicationListener接口 或者通过 @EventListener注解的方式 监听 事件【LogEvent】,注意注解的方式比实现接口的方式能更早监听到事件,用@Order注解可以控制 监听的顺序 1-->2-->3

@Component
//public class LogListener  {
public class LogListener  implements ApplicationListener<logEvent>{

@Override
//	@EventListener
        public void onApplicationEvent(logEvent event) {
	System.out.println(event.getSource()+"日志记录逻辑监听到");
}

创建一个发布者

实现ApplicationEventPublisherAware接口,调用接口里面的publishEvent方法 其实也可以通过实现ApplicationContextAware接口,直接调用applicationContext【继承了ApplicationEventPublisher】的publishEvent()方法就可以

@Component
public class publisher implements ApplicationEventPublisherAware {
 ApplicationEventPublisher applicationEventPublisher ;

@Override
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
	this.applicationEventPublisher = applicationEventPublisher;
}


//直接调用这个方法
public void publisherTest(String name){
	
	applicationEventPublisher.publishEvent(new logEvent(name));

}
}