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

办网站怎么赚钱广西桂林农业学校

办网站怎么赚钱,广西桂林农业学校,旅游网站建设意义,wordpress 注释模版文章目录 一、介绍二、启动环境Environment的分析三、进入源码四、创建环境1. 如何确定应用类型2. 测试 一、介绍 在springboot的启动流程中#xff0c;启动环境Environment是可以说是除了应用上下文ApplicationContext之外最重要的一个组件了#xff0c;而且启动环境为应用… 文章目录 一、介绍二、启动环境Environment的分析三、进入源码四、创建环境1. 如何确定应用类型2. 测试 一、介绍 在springboot的启动流程中启动环境Environment是可以说是除了应用上下文ApplicationContext之外最重要的一个组件了而且启动环境为应用上下文提供了最基本的前提基础。 在启动环境中主要保存大量配置信息和当前操作系统的配置信息以及环境变量。 对于它的重要性我们可以这样理解启动环境为创建应用上下文提供了基础支持而应用上下文为我们开发springboot项目提供了基础支持。 本文基于以下版本进行展开 jdk1.8springboot2.4.3 另外由于篇幅过长决定分四集文章来讲解分析 一、springboot创建并配置环境(一) - 创建环境 二、springboot创建并配置环境(二) - 配置基础环境 三、springboot创建并配置环境(三) - 配置扩展属性(上集) 四、springboot创建并配置环境(四) - 配置扩展属性(下集) 二、启动环境Environment的分析 老规矩在了解一个类之前我们需要先通过其UML图对该类的功能有一个大致的了解下面是启动环境Environment的UML图 PropertyResolver顾名思义为属性解析器提供用来解析并保存形如keyvalue这样的属性。 Environment在PropertyResolver的基础上添加了对profile的支持其实profile也是形如keyvalue的属性配置只是为了更清晰就把它做成独立的api了。 ConfigurablePropertyResolver可配置的属性解析器。在PropertyResolver的基础上添加了类型转换器ConversionService。 ConfigurableEnvironment可配置的环境即启动环境。本片文章主要就是围绕它来展开的。它对Environment做出了扩展允许动态设置profile。并对其内部保存的属性集合进行分类如操作系统的属性、操作系统的环境变量。 ConfigurableWebEnvironment在ConfigurableEnvironment的基础上添加了对servlet类型的web环境的支持。 ConfigurableReactiveWebEnvironment在ConfigurableEnvironment的基础上添加了对响应式类型的web环境的支持。 从上图中不难看出springboot为我们提供了三种启动环境 StandardEnvironment标准环境。提供基本的springboot启动环境。StandardServletEnvironmentservlet类型的web环境。在标准环境的基础上添加了对servlet类型的web环境的环境处理。StandardReactiveWebEnvironment响应式类型的web环境。在标准环境的基础上添加了对响应式类型的web环境的环境处理。 三、进入源码 在springboot启动流程的源码中我们不难发现启动环境的创建和配置是在一个prepareEnvironment()方法中完成的如下所示 进入该方法查看其实现逻辑 本文主要围绕prepareEnvironment()方法探讨springboot是如何创建运行环境并对其进行配置的。 下面进入正题。 四、创建环境 在prepareEnvironment()方法中getOrCreateEnvironment()方法负责实例化环境对象并将创建好的环境返回。所以我们需要进入该方法 该方法很简单就是根据当前应用类型去实例化对应的环境对象 如果是servlet类型的web环境则实例化一个StandardServletEnvironment对象如果是响应式类型的web环境则实例化一个StandardReactiveWebEnvironment对象如果以上两种web环境都不是则默认实例化一个标准环境对象StandardEnvironment。 但是springboot是如何知道我们当前应用是哪一种类型呢即webAppliicationType是如何确定的 1. 如何确定应用类型 当我们在springboot的主启动类中使用SpringApplicaton.run()启动项目时其内部其实是先创建一个SpringApplicaton实例然后对该实例调用其run()方法如下图所示 在创建SpringApplicaton实例时该构造方法内部确定当前应用程序类型并将该类型保存到webApplicationType属性中如下图所示 从该行代码可以看出springboot通过调用WebApplicationType的静态方法deduceFromClasspath()推断出当前应用程序类型。 我们再进入该静态方法来了解它是如何推断的 从该方法中看到推断过程无非就是从类路径中判断是否存在指定的类 如果类路径中存在servlet相关的类那么当前应用程序就是servlet类型的应用程序如果类路径中仅存在reactive相关的类那么当前应用程序就是响应式类型的应用程序如果以上两种类都不存在那么当前应用程序就什么类型的应用程序都不是了。 判断类路径中判断是否存在指定的类只需要调用ClassUtils的静态方法isPresent()就行了。而在该静态方法中则是通过对传入的类进行反射去实例化如果实例化失败并抛出了异常则说明该类是不存在的。 2. 测试 既不存在reactive相关的类也不存在servlet相关的类 在pom中我们仅仅引入springboot的依赖 然后启动项目进入断点查看当前应用程序的类型确定为NONE类型的应用程序 仅存在reactive相关的类 在pom中我们引入springboot的依赖 和 reactive相关的依赖 然后启动项目进入断点查看当前应用程序的类型确定为响应式类型的应用程序 存在servlet相关的类 在pom中我们引入springboot的依赖 和 servlet相关的依赖 然后启动项目进入断点查看当前应用程序的类型确定为servlet类型的应用程序 点此进入下一集springboot创建并配置环境(二) - 配置基础环境 纸上得来终觉浅绝知此事要躬行。 ————————我是万万岁我们下期再见————————
http://www.zqtcl.cn/news/606624/

相关文章:

  • 如何设计酒店网站建设好的交互网站
  • 怎么把自己的网站放到百度上九亭做网站
  • 张家界旅游网站建设网页设计作品欣赏分析
  • 订阅号自定义可以做链接网站不做网站dreamwa
  • 电子商务网站规划的原则做网站的集群方案
  • 山东建设银行怎么招聘网站自己做商城网站
  • 建设网站成本预算网站页面设计尺寸
  • 微官网和微网站首页房产网怎么查到房产
  • 高端服装产品网站建设织梦网站识别
  • 做调像什么网站找活注册网站请签署意见是写无
  • 郑州公司网站设计深圳福田有哪些公司
  • 怎么看网站是谁做的asp企业网站开发技术
  • 传奇手游网站大全9377编辑器wordpress
  • 网站集约化建设意见和建议苏州建设交通招聘信息网站
  • 网站建设优化的技巧衣服定制的app有哪些
  • 营销型网站建设报价vue本地访问服务器跨域
  • 支持api网站开发大疆网站建设
  • 国家排污许可网站台账怎么做进销存永久免费
  • 做游戏脚本的网站精品国内网站建设
  • 好的网站建站公司门户网站栏目维护建设方案
  • 如何在电脑上建立网站企业百度网站怎么做的
  • 34线城市做网站推广网站页面如何设计图
  • 成都网站建设前十广州开发网站设计
  • qq人脸解冻自助网站加工平台推荐
  • 中国室内设计联盟网官网网站专题页优化
  • 设计模板图热狗网站关键词优化
  • 无锡网站开发公司重庆网站有哪些
  • 做网站找什么公司工作网站开发思维导图内容
  • 有人知道做网站吗?wordpress多站点cdn
  • 网站风格特点大型外包公司有哪些