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

自己建网站要什么crm公司

自己建网站要什么,crm公司,酒店网站素材,找装修公司的网站在上一篇《spring-boot启动源码分析#xff08;一#xff09;之SpringApplication实例构造》后#xff0c;继续看了一个月的Spring boot启动源码#xff0c;初步把流程看完了#xff0c;接下来会不断输出总结#xff0c;以巩固这段时间的学习。同时也希望能帮到同样感兴趣…在上一篇《spring-boot启动源码分析一之SpringApplication实例构造》后继续看了一个月的Spring boot启动源码初步把流程看完了接下来会不断输出总结以巩固这段时间的学习。同时也希望能帮到同样感兴趣的同学。话不多说进入正题 环境介绍 spring boot版本2.7.18 主要starter:spring-boot-starter-web SpringApplication实例构造后就开始调用它的run方法开始启动spring boot。方法如下 本篇主要介绍上图中的4步SpringApplicationRunListener会重点讲 1、创建BootStrapContext 这里主要是创建一个DefaultBootstrapContext实例然后使用构造方法中从spring.fatories中获取的BootstrapRegistryInitializer对其初始化。只引入spring-boot-starter-web的spring boot没有在spring.fatories中配置BootstrapRegistryInitializer所以这里没有实际的初始化动作。但在这里我们可以支持自定义BootstrapRegistryInitializer对其进行扩展 2、设置系统变量“java.awt.headless”为true Java的Headless模式允许在没有图形界面的环境中运行程序从而提高性能和节省资源。 3、从spring.factories中获取SpringApplicationRunListener 这里我们有见到老朋友getSpringFactoriesInstances就是从spring.factories获取接口的实现类之后实例化返回。之后我们依然会频繁的接触它。因为spring.factories中定义了19种接口每种接口都对应一块功能。 这里返回的是SpringApplicationRunListeners它包含了SpringApplicationRunListener的集合以及一个ApplicationStartup实例。 SpringApplicationRunListener目前只有一个EventPublishingRunListener用于发布SpringApplicationEvent事件。而ApplicationStartup是SpringApplication中传入的用于记录启动过程数据的默认是一个DefaultApplicationStartup无实际操作但支持在SpringApplication实例化后执行run方法之前通过SpringApplication.setApplicationStartup设置自定义的ApplicationStartup。 SpringApplicationRunListeners主要是用于事件的发布会在不同的启动阶段发布对应的事件 如SpringApplicationRunListeners实例化后发布的staring、环境准备好后的environmentPrepared、上下文准备好后的contextPrepared等 实际的事件发布是交给ListSpringApplicationRunListener listeners的即每个SpringApplicationRunListener都调用各自方法发布相应的事件。如starting方法就是调用SpringApplicationRunListener.starting方法 所以我们也可以在spring.fatories中添加我们自己的SpringApplicationRunListener在不同的阶段发布自己的事件。 我们接着看EventPublishingRunListener首先看一下它的构造方法 在构造方法中主要实例化了一个内部的事件广播器同时添加SpringApplication中包含的监听器这个在SpringApplication构造方法中从spring.fatories中获取过 而它又是怎么发布事件的呢 我们可以看到每个阶段都有对应的事件示例通过内部的事件广播器进行广播。 getApplicationListeners(event, type)事件广播会先从监听器列表中筛选支持此事件的监听器通常如果监听器不是SmartApplicationListener子类没有重写自己的supportsEventType那么只是简单判断ApplicationListener中的泛型类型是否是对应事件的子类。EventPublishingRunListener发布的事件都是继承SpringApplicationEvent所以如果和BackgroundPreinitializer一样以如下方式定义那么将监听它发布的所有事件。 而像LoggingApplicationListener实现GenericApplicationListener它继承SmartApplicationListener那么会根据supportsEventType方法判断是否支持此事件 上图即为LoggingApplicationListener的supportsEventType实现可以看到只要事件类型是在·EVENT_TYPES中定义的事件都监听即 4、listeners.starting发布开始事件 上面已经把SpringApplicationRunListeners发布事件的流程详细介绍了一遍开始事件后发布后会有三个监听器支持此事件 1LoggingApplicationListener 这里主要是获取日志系统会从spring.factories获取LoggingSystemFactory 按顺序实例化其中的日志系统工厂类有引入对应日志依赖才能实例化所以默认是LogbackLoggingSystem.Factory。然后工厂类会创建对应的日志系统实例。loggingSystem.beforeInitialize()会进行初步的初始化像logback会获取日志上下文如果首次获取这里就会进行xml的解析等。 同时此时日志系统只是初步初始化所以会增加一个拒绝所有日志打印的TurboFilter。 2BackgroundPreinitializer 此监听器并没有实际响应开始事件主要响应的是ApplicationEnvironmentPreparedEvent、ApplicationReadyEvent、ApplicationFailedEvent 3DelegatingApplicationListener 代理监听器是代理通过context.listener.classes配置的自定义的监听器它实际也没有响应开始事件multicaster需要在响应ApplicationEnvironmentPreparedEvent才实例化
http://www.hkea.cn/news/14491225/

相关文章:

  • 网站模板建设教程网站建设公司咨询电话
  • 南阳网站建设赛科企业展示型网站建设
  • 介绍一学一做视频网站吗网站开发工程师的职责
  • 网站建设实训报告心得体会网站建设要用到编程吗
  • 廊坊seo建站手机版网站建设合同
  • 长春网易网站建设网站参数设定
  • 数字营销技术应用网站深圳网站建设制作优化
  • 服装高端网站建设vue 做pc网站
  • 排名优化seo公司长沙百度推广排名优化
  • 售房网站模板做铝材哪些网站招聘
  • 白云区建材网站建设海口关键词优化报价
  • 网站设计与开发专家html网站建设方案
  • 丰金网络 做网站WordPress网站图片预加载
  • qq上网站做我女朋友网站建设网络营销平台 云搜系统
  • 企业网站建设工作流程网站怎么更改关键词
  • 网络营销从网站建设开始开一个网站要花多少钱
  • 肇庆cms建站系统网站模板种类
  • 费县网站建设足球外围网站怎么做
  • 微博网站开发平台淘宝网站的推广方案
  • 吉林建设教育协会网站seo教程书籍
  • 魏县网站建设推广wordpress寻模板
  • 武威建设银行网站网络推广外包内容
  • 网站开发费用如何记账铁岭做网站信息
  • 临沂网站改版电商类网站咋做
  • 个人博客网站开发的意义网站关键词优化多少钱
  • 可以做旅行计划的网站网站内容全屏截屏怎么做
  • 网站推广服务好公司排名网站收录做关键词排名
  • 赣州建站九江市seo
  • 建网站做淘宝客可以吗网站虚拟主机
  • 网站建设方面的销售经验一起做网店17广州沙河