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

焦作网站建设哪家公司好购物网站成功案例

焦作网站建设哪家公司好,购物网站成功案例,百度收录排名怎么上去,网站做qq链接代码文章目录 一、介绍二、启动环境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.hkea.cn/news/14333179/

相关文章:

  • 有哪些好的模板网站做网站坚持多少年会有起色
  • 宁波网站建设制作公司排名网站开发成本最低多少钱
  • 网站访问统计js代码设计师网站外网
  • 备案时网站名称可以重复吗绍兴seo排名收费
  • 朝阳住房和城乡建设官方网站wordpress内存缓存
  • 上海网站建设咨询android studio开发app实例
  • 广德网站建设网站开发工具简述
  • 网站建设计划书实验总结要怎样创造网站
  • 建设工程竣工备案网站网站开发公司的销售方式
  • 网站建设带后台带微商城化州网站建设
  • 高度重视机关门户网站建设做网站和app需要多久
  • 装修网站建设优缺点学做ppt的网站有哪些
  • 门户网站建设服务收费农业网站电子商务平台建设方案
  • 东莞网站优化软件wordpress主题模版修改
  • 国内做视频的网站有哪些wordpress页面下
  • 精品网站开发公司wordpress 有评论时邮箱设置
  • 网站建设解决恩问题山西省建设厅招标网站
  • 网站建设推广软文案例做网站下载那个数据库好
  • 做门票的网站中国航天空间站最新消息
  • 中国站长之家哪个公司网站设计好
  • 东台做网站莆田专业建站公司
  • 制作网站的难度长沙网站建设论坛
  • 免费的企业建站cmshtml网页设计实验总结
  • 上海设计网站设计做新闻源网站采集站赚钱
  • 企业网站建设的重要性及意义在线阅读 wordpress主题
  • 建筑行业招聘网站推荐php企业网站后台管理系统
  • 爱奇艺的网站是用什么做的免费seo关键词优化方案
  • 用AIDE怎么建设网站网站做管制户外刀具
  • 泰州网站建设设计郑州网站建设设计公司
  • 国外做问卷赚购物券等的网站制作php网站用什么软件