spring事件监听
第一章 spring框架构成
第二章 spring容器
第三章 spring配置bean
第四章 bean的继承和依赖
第五章 bean的生命周期
第六章 spring依赖注入
第七章 Spring AOP
第八章 spring事务
第九章 spring事件监听
原文链接 https://zhhll.icu/2021/框架/spring/基础/9.spring事件监听/
spring事件监听
ApplicationListener监听容器中发布的事件
实现ApplicationListener来完成事件监听
public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {
/**
* Handle an application event.
* @param event the event to respond to
*/
void onApplicationEvent(E event);
}
spring中定义的事件
Spring 提供了以下 5 中标准的事件:
-
上下文更新事件ContextRefreshedEvent
该事件会在ApplicationContext 被初始化或者刷新时发布。也可以在调用 ConfigurableApplicationContext 接口中的 refresh()方法时被触发
-
上下文开始事件ContextStartedEvent
当容器调用ConfigurableApplicationContext的 Start()方法开始/重新开始容器时触发该事件
-
上下文停止事件ContextStoppedEvent
当容器调用 ConfigurableApplicationContext的 Stop()方法停止容器时触发该事件
-
上下文关闭事件ContextClosedEvent
当容器调用 ConfigurableApplicationContext的close()方法关闭ApplicationContext时触发该事件。容器被关闭时,其管理的所有单例 Bean 都被销毁
-
请求处理事件RequestHandledEvent
在 Web 应用中,当一个 http 请求(request)结束触发该事件
spring的事件处理是单线程的,当事件被发布时,该进程会阻塞直到所有的接收者得到该消息
自定义事件监听器
可以实现ApplicationListener来自定义事件,如果一个 bean 实现了 ApplicationListener 接口,当一个 ApplicationEvent 被发布以后,bean 会自动被通知
@Component
public class UserLogListener implements ApplicationListener<UserEvent> {
private final UserEventLogService userEventLogService;
@Override
public void onApplicationEvent(UserEvent userEvent) {
// 处理事件
}
}
事件需要继承ApplicationEvent
public class UserEvent extends ApplicationEvent {
}
可以使用publishEvent方法来发布事件
ApplicationContext context = new AnnotationConfigApplicationContext(MainConfig4.class);
context.publishEvent(new UserEvent() {
});
本文来自博客园,作者:拾光师,转载请注明原文链接:https://www.cnblogs.com/life-time/p/17864353.html 个人博客-> https://zhhll.icu
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~