事件监听管理器
默认:SimpleApplicationEventMulticaster
注册监听
@Component
public class ContextStoppedListener implements ApplicationListener<ContextStoppedEvent> {
@Override
public void onApplicationEvent(ContextStoppedEvent event) {
System.out.println("========ContextStoppedListener");
}
}
定义事件
public class ContextStoppedEvent extends ApplicationContextEvent {
/**
* Create a new ContextStoppedEvent.
* @param source the {@code ApplicationContext} that has been stopped
* (must not be {@code null})
*/
public ContextStoppedEvent(ApplicationContext source) {
super(source);
}
}
发布事件
事件处理
for循环使用默认的listeners管理器进行循环执行
备注:事件类型依赖关系
一般我们定义的事件都继承于ApplicationEvent,不一定非得实现ResolvableTypeProvider
public class PayloadApplicationEvent<T> extends ApplicationEvent implements ResolvableTypeProvider
public interface ResolvableTypeProvider {
/**
* Return the {@link ResolvableType} describing this instance
* (or {@code null} if some sort of default should be applied instead).
*/
@Nullable
ResolvableType getResolvableType();
}