当前位置: 首页 > news >正文

宁夏免费做网站附近的成人电脑培训班

宁夏免费做网站,附近的成人电脑培训班,静态网站维护,wordpress++分页前言: 上一篇我们分析了 Spring Boot 事件监听的原理,本篇我们来自定义实现自己的监听器。 Spring Boot 系列文章传送门 Spring Boot 启动流程源码分析(2) Spring Boot 启动流程源码分析(2) Spring Bo…

前言:

上一篇我们分析了 Spring Boot 事件监听的原理,本篇我们来自定义实现自己的监听器。

Spring Boot 系列文章传送门

Spring Boot 启动流程源码分析(2)

Spring Boot 启动流程源码分析(2)

Spring Boot 自动配置实现原理(源码分析)

Spring Boot 自定义 starter 启动器

Spring Boot 事件监听机制工作原理

Spring Boot 自定义监听器

创建 Spring Boot 自定义监听器通常要经过一下步骤

  1. 定义事件。
  2. 定义事件监听器。
  3. 定义事件发布器。
  4. 触发事件,完成验证。

定义事件

定义 Event 事件,MyEvent 继承了 ApplicationEvent 类,如果我们要使用 Spring 的事件监听机制,那我们定义的 Event 事件必须继承ApplicationEvent ,否则就无法使用。

public class MyEvent extends ApplicationEvent {private final String event;public MyEvent(Object source, String event) {super(source);this.event = event;}public String getEvent() {return event;}}

定义事件监听器

事件监听器实现了 ApplicationLister 接口,泛型为 ApplicationEvent,因为要监听事件,所以必须按照 Spring 的规则来,onApplicationEvent 方法就是监听到的事件,在这里可以完成业务逻辑处理,因为事件监听器需要加入Spring IOC 容器中才能生效,因此 MyListener 使用了 @Component 注解。

@Slf4j
@Component
public class MyListener implements ApplicationListener<MyEvent> {@Overridepublic void onApplicationEvent(MyEvent myEvent) {//监听器调用事件方法String event = myEvent.getEvent();log.info("event:{}",event);}
}

定义事件发布器

Sprin Boot 监听器要生效,必须要有一个时间发布器,自定了一个事件发布器,注入了 ApplicationEventPublisher,使用 ApplicationEventPublisher#publishEvent 方法完成事件发布。

@Component
public class MyPublisher {@Resourceprivate ApplicationEventPublisher applicationEventPublisher;public void publish(){applicationEventPublisher.publishEvent(new MyEvent(new MyListener(),"publish event  test"));}
}

触发事件,完成验证

我们这里直接使用 Spring Boot 启动类来完成事件发布测试,如下:

@SpringBootApplication
public class MyStudySpringBootApplication {public static void main(String[] args) {ConfigurableApplicationContext context = SpringApplication.run(MyStudySpringBootApplication.class, args);MyPublisher publisher = context.getBean(MyPublisher.class);publisher.publish();}}

测试结果:

2024-06-30 21:35:42.926  INFO 29928 --- [main] com.my.study.start.listener.MyListener   : event:publish event  test

结果符合预期,这样我们就完成了一个简单的自定义事件监听,一般来说,我们在项目开发中是使用不到事件监听机制的,但是源码中大量使用了监听机制,因为我们还是需要了解监听器是怎样实现的。

自定义监听器的注解实现方式

使用 @EventListener 注解,代码如下:

@Slf4j
@Component
public class MyAnnotationListener {@EventListenerpublic void handleCustomEvent(MyEvent myEvent) {//监听器调用事件方法String event = myEvent.getEvent();log.info("event2:{}", event);}}

欢迎提出建议及对错误的地方指出纠正。

http://www.khdw.cn/news/3801.html

相关文章:

  • 腾讯营销电池优化大师下载
  • 龙华营销型网站建设上海发布微信公众号
  • 娄底做网站的公司比较靠谱的推广公司
  • 那些网站可以做推广seo课程培训
  • 单位网站怎么制作百度关键词查询工具
  • 香港外贸网站建设网站排名优化客服
  • 网站维护需要什么技能最好最全的搜索引擎
  • 海外注册域名的网站好外链发布软件
  • 苏州企业网站建设服务好市场监督管理局是干什么的
  • h5网站页面设计最大免费发布平台
  • 湖南智能网站建设费用北京竞价托管代运营
  • 怎么给领导做网站分析模板建网站价格
  • 网站做动态图片不显示seo工具网站
  • 山西定制网站建设电源廊坊快速排名优化
  • 仁怀网站建设优化的含义
  • 怎样做网站上更改文字全国疫情高峰感染高峰进度查询
  • 西宁高端网站制作公司天津百度网站快速排名
  • 天河网站建设哪个好网站查询站长工具
  • 网站推广专员面试企业培训师
  • 网站建设情况检查报告接广告赚钱的平台
  • 做网站迅雷下载链接设置外链工具下载
  • 个体工商户可以做网站备案吗百度在线使用网页版
  • 画图在什么网站上做兼职商铺营销推广方案
  • discuz做的网站怎么修改app线下推广怎么做
  • 动态web网站怎么做seo引擎优化外包
  • 安卓app市场网站推广优化的原因
  • 建设一个公司网站企业营销型网站
  • 做按摩网站多少钱百度软文推广怎样收费
  • 如何给公司做网站推广宣传谷歌seo顾问
  • 做网站js还是jq推销产品怎么推广