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

网站建设难点广州优化公司哪家好

网站建设难点,广州优化公司哪家好,房地产网站建设策划方案,付网站建设服务费的会计分录ApplicationListener是spring boot应用启动时的事件监听器。监听的事件有&#xff08;包括但不限于&#xff09;&#xff1a; &#xff08;1&#xff09;接下来&#xff0c;我们先通过一个例子实现自定义ApplicationListener&#xff1a; 监听器需要实现ApplicationListener<…

ApplicationListener是spring boot应用启动时的事件监听器。监听的事件有(包括但不限于):

(1)接下来,我们先通过一个例子实现自定义ApplicationListener:

监听器需要实现ApplicationListener<T>,参数类型为ApplicationEvent,表示监听所有事件,当然也可以将参数类型设置为单独的事件,下面这个只会接收ApplicationEnvironmentPreparedEvent事件:

(2)定义了监听器后,还需要配置一下,让spring boot启动时加载它,即配置"context.listener.classes"

(3)启动后可以看到,监听器监听了如下事件:

(4)源码分析,我们来看看自定义的监听器是怎么工作的:

ApplicationListener是采用观察者模式实现的,我们的启动时入口是执行SpringApplication.run方法

如下两处代码,分别是获取SpringApplicationRunListeners(这个是各个事件的发布者)和进行环境的准备,

在环境准备好后发布ApplicationEnvironmentPreparedEvent事件

虽然这里listeners是容器类,但默认只有一个EventPublishingRunListener,我们看一下它是怎么发布事件的,如下代码很明显,进行了一个事件的广播,但还没看到广播给谁,继续往下

这里可以看到getApplicationListeners(event, type),就是根据事件类型获取需要广播的ApplicationListener

在调试状态下,我们看一下getApplicationListeners(event, type)有哪些

发现只有6个ApplicationListener响应了ApplicationEnvironmentPreparedEvent事件,而且没有我们自定义的ApplicationListener,怎么回事呢?

实际上,我们的ApplicationListener是通过代理类执行的,即上面的DelegatingApplicationListener,我们可以看一下它怎么执行的:

上面代码可以看到代理类也监听了所有的事件,然后在ApplicationEnvironmentPreparedEvent事件时才初次响应,并且通过getListeners获取所有代理的ApplicationListeners,然后它自己实现了一个事件广播器,然后把获取的ApplicationListeners通过到addApplicationListener加入到广播器中,最后进行事件的广播转发。我们重点看一下getListeners,看是如何获取到我们自定义的ApplicationListeners的:

我们可以看到,是通过我们配置的context.listener.classes获得类名,然后通过反射实例化返回。

这样整个监听器的过程就完整了。我们注意到代理类是从ApplicationEnvironmentPreparedEvent开始响应的,所以之前的事件我们自定义的ApplicationListener是无法监听的。实际上前面只有一个ApplicationStartingEvent,此时应用才刚启动,也没啥好监听的。如果需要监听所有的事件可以在自己在spring.factories配置:

在resources下新建META-INF\spring.factoies,然后和spring的监听器配置一样配置自己定义的监听器,就可以啦

http://www.wooajung.com/news/21841.html

相关文章:

  • wordpress 手机 自建站网站推广网络营销
  • 如何做网站广告图片广州网站设计
  • 做物流用哪个网站好seo专员是干什么的
  • 建设银行官方网站诚聘英才频道免费的推广软件下载
  • wps2016怎么做网站怎么自己找外贸订单
  • 如何做webgis网站手机网页设计制作网站
  • 海外网站代购的方案b2b商务平台
  • 域名备案的网站建设方案书模板中国搜索引擎排名
  • 浙江省城乡住房建设部网站安徽百度seo教程
  • html网页设计作业成品代码免费下载aso优化方案
  • 在演示文稿上网站怎么做怎么做网站优化排名
  • 代理服务器在哪里找seo工作前景如何
  • 网站建设策划 流程图宁波网站建设与维护
  • 广告制作公司网站建设模板中国市场营销网
  • 大学生作业做网站百度指数数据
  • 显示网站正在维护是什么情况站长之家网站查询
  • 品牌设计师需要具备什么能力石家庄百度关键词优化
  • 自己做网站难吗百度热搜关键词排名优化
  • Wordpress 学校网站泰安百度公司代理商
  • 贸易公司广告网站百度公司排名多少
  • 线上线下一体化营销站长seo推广
  • 独立站建站步骤学网络营销去哪个学校
  • 永春网站开发整合营销的特点有哪些
  • 营销方案100例免费北京官网seo
  • 儿童编程网课平台哪个好seo搜索引擎优化工资
  • dw网页制作素材网站公司推广发帖网站怎么做
  • 电商网站改版自己的品牌怎么做加盟推广
  • 济南网站建设公司哪个好最全bt搜索引擎
  • 西安做的好的网站公司百度官网网页版
  • 湖州网站制作写软文用什么软件