Spring 框架中有哪些不同类型的事件?
Spring 的ApplicationContext 提供了支持事件和代码中监听器的功能。
我们可以创建bean 用来监听在ApplicationContext 中发布的事件。ApplicationEvent 类和在ApplicationContext 接口中处理的事件,如果一个bean 实现了ApplicationListener 接口,当一个ApplicationEvent 被发布以后,bean 会自动被通知。
public class AllApplicationEventListener implements ApplicationListener<ApplicationEvent> {@Overridepublic void onApplicationEvent(ApplicationEvent applicationEvent) {//process event}
}
Spring 提供了以下5 中标准的事件:
1.上下文更新事件(ContextRefreshedEvent):该事件会在ApplicationContext 被初始化或者更新时发布。也可以在调用ConfigurableApplicationContext 接口中的refresh()方法时被触发。
2.上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext 的Start()方法开始/重新开始容器时触发该事件。
3.上下文停止事件(ContextStoppedEvent):当容器调用ConfigurableApplicationContext 的Stop()方法停止容器时触发该事件。
4.上下文关闭事件(ContextClosedEvent):当ApplicationContext 被关闭时触发该事件。容器被关闭时,其管理的所有单例Bean 都被销毁。
5.请求处理事件(RequestHandledEvent):在Web 应用中,当一个http 请求(request)结束触发该事件。
除了上面介绍的事件以外,还可以通过扩展ApplicationEvent 类来开发自定义的事件。
public class CustomApplicationEvent extends ApplicationEvent {public CustomApplicationEvent ( Object source, final String msg ){super(source);System.out.println("Created a Custom event");}
}
为了监听这个事件,还需要创建一个监听器:
public class CustomEventListener implements ApplicationListener < CustomApplicationEvent >{@Overridepublic void onApplicationEvent(CustomApplicationEvent applicationEvent) {}
}
之后通过applicationContext 接口的publishEvent()方法来发布自定义事件。
CustomApplicationEvent customEvent = new CustomApplicationEvent(applicationContext,“Test message”);
applicationContext.publishEvent(customEvent);
Spring 框架中有哪些不同类型的事件?相关推荐
- Spring框架中有哪些不同类型的事件
Spring 提供了以下5种标准的事件: (1)上下文更新事件(ContextRefreshedEvent):在调用ConfigurableApplicationContext 接口中的refresh ...
- java 事件类型_Spring框架中有哪些不同类型的事件?
Spring内置事件 内置事件中由系统内部进行发布,只需注入监听器 自定义事件 事件类需要继承ApplicationEvent,代码如下: public class BigEvent extends ...
- spring学习12 -Spring 框架模块以及面试常见问题注解等
以下为spring常见面试问题: 1.Spring 框架中都用到了哪些设计模式? Spring框架中使用到了大量的设计模式,下面列举了比较有代表性的: 代理模式-在AOP和remoting中被用的比较 ...
- 25道Spring框架面试题
25个经典的Spring面试问答 By - Last updated: 星期二, 五月 5, 2015 本人收集了一些在大家在面试时被经常问及的关于Spring的主要问题,这些问题有可能在你下次面试时 ...
- Spring框架面试精华知识
咳咳,这里整理一些关于WEB框架的一些知识点,来帮助更多的人进行面试,主要的还是讲解一些关于目前企业用得比较流行的框架,还有就是一些比较前沿的框架,比如阿里开源的Dubbo框架及其开源框架Zookee ...
- spring框架之面试
spring框架之面试 Spring的主要问题,这些问题有可能在你下次面试时就会被问到.对于本文中未提及的Spring其他模块,我会单独分享面试的问题和答案. 欢迎大家向我推荐你在面试过程中遇到关于S ...
- Spring 框架分析
1 .Spring 框架是一个什么框架? Spring 是一个资源整合框架,其核心是资源整合,然后以一种更加科学的方式对外提供服 务,例如提高对象的应用效率,降低系统开销,提高代码的可维护性等等.其官 ...
- 浅谈Spring框架应用的设计模式(一)——工厂模式
文章目录 前言 一.工厂模式介绍 1.简单工厂模式 (1)静态工厂模式 (2)利用反射机制实现的简单工厂 2.工厂方法模式 3.抽象工厂模式 二.Spring框架中工厂模式的重要应用 1.BeanFa ...
- Spring框架中提取list集合类型属性注入
提取list集合类型属性注入 前言 引入名称空间 编写`xml`配置文件 运行结果 前言 对于某一个类型属性通用性较高的情况下,可以单独的提取出来,给需要的bean进行引用. 有关类的创建见<S ...
最新文章
- ES6中的rest参数
- mysql InnoDB 聚集索引,二级索引
- SAP WebIDE 是如何加载SAP UI5里自定义的XML view的 - JerryMaster.view.xml
- PHP检测远端文件是否存在
- java referencemap_Java中TypeReference用法说明
- linux搭建spark集群,详解Spark+Zookeeper搭建高可用Spark集群
- USB应用开发笔记之一:STM32上实现USB主机读写U盘
- python 实现大文件md5值计算
- 红旗linux怎么更新,红旗linux7.0下自动更新firefox
- 一个水杯居然能引出这么多测试点
- 如何判断对方列表里是不是好友_微信如何快速查看是否为好友关系
- 在网页浏览器中原生显示PDF文件
- ADS仿真4_滤波器设计
- Linux基础之计算机网络
- 读《天才在左,疯子在右》03--灵魂深处
- quartz表删除顺序
- usb gadget 端点halt的产生
- 【实践】基于CentOS7部署Ceph集群(版本10.2.2)
- linux下使用tc做流量限速
- unix编程书籍推荐