springboot环境变量(environment)加载源码分析
代码入口
//SpringApplication run 环境变量初始化入口
prepareEnvironment(listeners, bootstrapContext, applicationArguments)//prepareEnvironment 分步加载环境变量
private ConfigurableEnvironment prepareEnvironment(SpringApplicationRunListeners listeners,DefaultBootstrapContext bootstrapContext, ApplicationArguments applicationArguments) {//创建和初始化-环境变量对象ConfigurableEnvironment environment = getOrCreateEnvironment();configureEnvironment(environment, applicationArguments.getSourceArgs());ConfigurationPropertySources.attach(environment);listeners.environmentPrepared(bootstrapContext, environment);DefaultPropertiesPropertySource.moveToEnd(environment);configureAdditionalProfiles(environment);bindToSpringApplication(environment);if (!this.isCustomEnvironment) {environment = new EnvironmentConverter(getClassLoader()).convertEnvironmentIfNecessary(environment,deduceEnvironmentClass());}ConfigurationPropertySources.attach(environment);return environment;}
创建和初始化-环境变量对象
//根据应用类型不同,创建不同的环境变量对象
//环境变量的来源属性值来源不同,内部有许多(List)PropertySource,分别保存
private ConfigurableEnvironment getOrCreateEnvironment() {if (this.environment != null) {return this.environment;}switch (this.webApplicationType) {case SERVLET://web应用环境变量类型//加载systemProperties,systemEnvironment//加载servletConfigInitParams,servletContextInitParamsreturn new StandardServletEnvironment();case REACTIVE://响应应用环境变量类型return new StandardReactiveWebEnvironment();default://只是启动一个容器的应用//加载systemProperties,systemEnvironmentreturn new StandardEnvironment();}}1.StandardEnvironment加载一些系统环境变量参数即可
2.StandardServletEnvironment是一个web应用,自然还有一些web相关的环境变量参数
springboot环境变量(environment)加载源码分析相关推荐
- 插件式换肤框架搭建 - 资源加载源码分析
资源加载源码分析 1.首先我们来看一下ImageView是如何加载资源的: public ImageView(Context context, @Nullable AttributeSet attrs ...
- spring boot实战(第十篇)Spring boot Bean加载源码分析
前言 前面的文章描述了Application对应Bean的创建,本篇将阐述spring boot中bean的创建过程 refresh 首先来看SpringApplication#run方法中refre ...
- hanlp中文语言处理--词典加载源码过程分析及自定义用户词汇添加
一.hanlp本地词典加载源码分析 hanlp在调用提供的函数处理文本时会先初始化本地词典,加载词典进入内存中 以中文分词接口为例子 1.调用分词函数入口 public class DemoAtFir ...
- uboot中环境变量的加载、写入过程详解
1.uboot启动中环境变量的加载 1.1.uboot加载环境变量流程分析 (1)首先使用默认的环境变量default_environment[]: (2)然后加载SD卡中env分区的环境变量,校验读 ...
- Linux环境变量及其加载顺序
Linux环境变量及其加载顺序 系统级 用户级 /etc/profile.d/*.sh >/etc/profile -> (~/.bash_profile | ~/.bash_login ...
- php 变量存活期,php 变量生命周期:PHP源码分析-PHP的生_php
php的最多的两种运行模式是web模式.CLI模式. 无论哪种模式,PHP工作原理都是一样的,作为一种SAPI运行. 1.当我们在终端敲入php这个命令的时候,它使用的是CLI. 它就像一个web服务 ...
- Cocos Creator2.4.8 资源加载源码阅读
最近用到资源加载的问题:加载的资源进度条倒退问题,现在只是用临时的解决方案 - 加载进度如果出现会倒退的问题还是用原来的数值.抽时间看了下cocos creator 资源加载的源码,整理了一下脑图 一 ...
- springboot全局常量_Spring-Boot配置属性和环境变量的加载顺序
Spring-Boot使用很方便,创建系统时,您绝对需要将"设置"和"程序"分开,在Java中,有一个名为application.property/yaml的属 ...
- Kettle — Spoon加载源码解析
在Kettle中,我们知道Spoon是其中最重要的一个组件.它可以让我们以图形化的方式开发转换和作业等工作. 在spoon中Kettle采用了Xul界面技术和Swt相结合的方式进行图形界面的开发. 启 ...
最新文章
- 【Android OpenGL ES】阅读hello-gl2代码(二)Java代码
- java中getinputstream_解析request.getInputStream()得到的流
- 利用PCHunter结束各种进程
- 二者取其一(初遇)_网络流
- python中的类及self详解_Python类class参数self原理解析
- 深度学习教程 TensorFlow and Deep Learning Tutorials
- VoxelNet: 基于点云的三维空间信息逐层次学习网络
- 小问题: windows组件调用失败,无法加载安装安装程序:Wbemupgd.dll
- java解析json数组对象_JAVA中快速解析JSON对象里包含的JSON数组
- java实验检查危险品代码_2019JAVA第六次实验报告
- C# WinForm开发系列 - 开篇
- sas 怎么连接mysql_sas连接MySQL
- prometheus使用cAdvisor监控容器
- 浅谈无线传感器和无线传感器网络
- PNP : Work Cound Frequence
- 【行列式2】n阶行列式的展开
- 用keil语言定义c51,51单片机Keil C51的使用(C语言)
- 卸载idea2020删除以前的配置_系统瘦身指南:卸载软件,看着简单,实际贼困难...
- 概念一: python 中列表 ,数组, 集合,字典;
- cacheput注解 用法_以注解的方式使用redis缓存得用法@CachePut , @CacheEvict, @Cacheable...
热门文章
- dnf游戏币比例计算机怎么算,DNF:游戏币比例降低到1比35,究竟是好还是坏?老司机说出了心声...
- python中demo函数_Python之函数
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园二手交易系统aqj3i
- typeScript学习随笔(一)
- [ACNOI2022]穷尽吾生
- php 页面显示volist,thinkphp 中的volist标签在ajax操作中的特殊性
- 【英宝通Unity4.0公开课学习 】(三)脚本使用
- ​抗击新型冠状病毒,科技公司捐赠武汉排行榜名单
- 为什么路由器不用c语言,千古难题:路由器到底需不需要关闭?
- linux数组递增,shell 输入动态数组并遍历的简单例子