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

宁夏免费做网站济南seo优化公司

宁夏免费做网站,济南seo优化公司,织梦网站图标更换,给客户做网站图片侵权前言: 上一篇我们分析了 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.hrbkazy.com/news/50668.html

相关文章:

  • 做wap网站2022最新热点事件及点评
  • 梅州建站电话百度竞价推广公司
  • 深圳的网站建设公司排名经典营销案例分析
  • 申论政府建设网站镇江百度关键词优化
  • mysql php网站开发创建自己的网站
  • 有后台的网站怎么做厦门seo推广公司
  • 建设网站链接淘宝搜索词排名查询
  • 广州企业网站开发搜索引擎有哪些种类
  • 无为网站设计百度seo关键词外包
  • 好看的ui网站页面设计影响关键词优化的因素
  • 汽修网站怎么做无限制搜索引擎排名
  • 嘉兴代办公司注册公司自己搜20条优化措施
  • 南京市建委网站下载中心建设工程招标seo排名赚app官网
  • phpwind做的网站广告公司是做什么的
  • 大连城市建设管理局网站成人短期电脑培训班学费
  • 做mla的网站seo关键词优化的技巧和方法
  • 做公司网站哪家好windows优化大师免费版
  • 怎么用自己的网站做网页沈阳seo排名优化推广
  • 展示型网站源码网络营销的策划方案
  • 如何做网站搬家百度框架户一级代理商
  • pc营销型网站google推广怎么做
  • 抽奖网站怎么做的南宁百度seo建议
  • 做网站怎么添加关键词发稿吧
  • 鹤壁建设网站推广渠道电话百度如何做广告
  • 如何用ps做网站ui新开传奇网站
  • 做网站开发 用什么软件网络上哪里可以做推广
  • 网站空间 默认文档如何做google推广
  • 做淘宝网站用什么软件做域名查询ip138
  • 做网站分类链接中国国际新闻
  • 做网站会用到什么语言百度收录检测