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

青岛网站制作哪里有wordpress编辑器添加视频

青岛网站制作哪里有,wordpress编辑器添加视频,免费html网站模板,网站建设 温州一、引言 Spring Boot 的启动虽然仅仅是执行了一个main方法#xff0c;但实际上#xff0c;运行流程还是比较复杂的#xff0c;其中包含几个非常重要的事件回调机制。在实际生产开发中#xff0c;有时候也会利用这些启动流程中的回调机制#xff0c;做一些项目初始化的工…一、引言 Spring Boot 的启动虽然仅仅是执行了一个main方法但实际上运行流程还是比较复杂的其中包含几个非常重要的事件回调机制。在实际生产开发中有时候也会利用这些启动流程中的回调机制做一些项目初始化的工作比如内存初始化等。所以学习Spring Boot启动流程非常重要。 二、启动流程概述 SpringApplication.run(Object, String...)方法的执行中包括以下一些关键步骤 1、准备环境  执行ApplicationContextInitializer.initialize()监听器SpringApplicationRunListener回调contextPrepared()加载主配置类启动类定义信息监听器SpringApplicationRunListener回调contextLoaded()2、刷新启动IOC容器  扫描加载所有容器中的组件从META-INF/spring.factories中获取所有的EnableAutoConfiguration组件3、回调容器中所有的 ApplicationRunner 、CommandLineRunner 的 run() 方法 4、监听器 SpringApplicationRunListener 回调 finished()方法 三、详细流程剖析 Spring Boot的启动方法调用流程为两步1、创建SpringApplication对象2、执行run()方法。 这句代码是一个中间的调用过程接下来我们将深度讲解创建SpringApplication对象和执行run()方法具体都做了哪些工作。  1、创建SpringApplication对象 通过SpringApplication的构造器调用initialize()方法对SpringApplication中的一些属性初始化默认值同时从META-INF/spring.factories找到所有ApplicationContextInitializer和ApplicationListener保存起来。 SuppressWarnings({ unchecked, rawtypes }) private void initialize(Object[] sources) {// 保存主配置类if (sources ! null sources.length 0) {this.sources.addAll(Arrays.asList(sources));}// 判断当前应用是否为一个WEB应用this.webEnvironment deduceWebEnvironment();// 从类路径下找到META-INF/spring.factories配置的所有ApplicationContextInitializer然后保存起来setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));// 从类路径下找到META-INF/spring.factories配置的所有ApplicationListenersetListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));// 从多个主配置类中找到有main方法的主配置类this.mainApplicationClass deduceMainApplicationClass(); } 2、运行run(String...)方法 主要做了两件事 回调ApplicationContextInitializer和SpringApplicationRunListener回调ApplicationRunner和CommandLineRunner。 详细流程注释如下 /*** Run the Spring application, creating and refreshing a new* {link ApplicationContext}.* * param args* the application arguments (usually passed from a Java main* method)* return a running {link ApplicationContext}*/ public ConfigurableApplicationContext run(String... args) {StopWatch stopWatch new StopWatch();stopWatch.start();ConfigurableApplicationContext context null;FailureAnalyzers analyzers null;configureHeadlessProperty();// 获取SpringApplicationRunListeners从类路径下META-INF/spring-factoriesSpringApplicationRunListeners listeners getRunListeners(args);// 循环所有的listener回调starting()方法listeners.starting();try {// 封装命令行参数ApplicationArguments applicationArguments new DefaultApplicationArguments(args);/** 准备环境:* 创建环境完成后回调SpringApplicationRunListener.environmentPrepared()方法表示* 环境准备完成。*/ConfigurableEnvironment environment prepareEnvironment(listeners, applicationArguments);// 打印控制台的Spring 字符画Banner printedBanner printBanner(environment);// 创建IOC容器ApplicationContext决定创建web IOC还是普通的IOC容器。context createApplicationContext();// 创建错误分析对象analyzers new FailureAnalyzers(context);/** 准备上下文环境将environment保存到IOC容器中 而且applyInitializers(),* 回调之前保存的所有的applicationContextInitializer的initialize()方法* 回调所有的SpringApplicationRunListener的contextPrepareded()最后回调* 所有的SpringApplicationRunListener的contextLoaded()方法*/prepareContext(context, environment, listeners, applicationArguments, printedBanner);/** 刷新容器IOC容器的初始化扫描所有的配置类、Bean等加载并创建IOC容器中所有的组件。如果是web应用* 还会创建嵌入式的tomcat当执行完refreshContext()后IOC容器即创建完毕*/refreshContext(context);/** 从IOC容器中获取所有的ApplicationRunner和CommandLineRunner* 然后先回调ApplicationRunner 再回调 CommandLineRunner*/afterRefresh(context, applicationArguments);// 所有的SpringApplicationRunListener回调finished()方法listeners.finished(context, null);stopWatch.stop();if (this.logStartupInfo) {new StartupInfoLogger(this.mainApplicationClass).logStarted(getApplicationLog(), stopWatch);}// 整个Spring Boot应用启动完成后返回IOC容器return context;} catch (Throwable ex) {handleRunFailure(context, listeners, analyzers, ex);throw new IllegalStateException(ex);} } 四、总结 Spring Boot 的启动流程是 1、准备环境 2、刷新启动IOC容器  3、回调容器中所有的 ApplicationRunner 、CommandLineRunner 的 run() 方法 4、监听器 SpringApplicationRunListener 回调 finished()方法 在“详细启动流程” 中已经将run()方法中实际执行流程用注释的方式标记出来了里面的方法都通过调用的方式完成了一些特定的功能最主要的是把握他们的执行顺序和完成内容可以通过debug的方式并观察控制台输出和参数内容来进行追踪学习。 综上就是关于Spring Boot启动的完整流程欢迎文末留言。
http://www.zqtcl.cn/news/664858/

相关文章:

  • 用ai怎么做网站专门做短视频的公司
  • 陶瓷类网站建设免费会员管理软件
  • 网站建设 用户管理一个服务器多个网站好吗
  • php做网站特效wordpress开启xmlrppc
  • 顺义重庆网站建设纪检监察网站建设
  • 网站制作源码企业品牌推广方式有哪些
  • 简述制作网站的流程网站开发后端用什么
  • 长沙好的网站建设公司厦门建网站多少钱
  • wordpress id清0中山网站的优化
  • 泰州网站制作维护服务器调用wordpress
  • 网站建设飠金手指下拉c 网站开发 环境配置
  • 派点网站建设物流公司做网站哪家好
  • 最便宜的外贸自建站平台wordpress 主题 mip
  • wordpress动漫视频网站黄冈网站推广策略
  • 做推广的网站带宽需要多少钱asp网站防攻击
  • 网站企业wordpress需要php几
  • 广州微信网站制作icp备案号查询官网
  • 网站建设 搜狐网络游戏排行榜2020
  • 比较好的做简历的网站更换网站模板
  • 网站如何兼容大多浏览器怎么做运营网站
  • 企业网站首页flash口红机网站怎么做的
  • 建网站算法制作网页软件手机版
  • vr技术在网站建设的应用营销内容包括哪些方面
  • 网站规划与开发技术专业优化措施二十条
  • 通州区网站快速排名方案视频网站视频预览怎么做
  • 同创企业网站源码建筑行业公司排名
  • 温州网站建设服务建设商务网站公司
  • 导视设计网站推荐创业平台的选择
  • 营销网站建设设计义乌 网站制作
  • 南通企业网站建设公司庆阳网站建设与制作