ConfigFileApplicationListener 主要作用就是读取应用的配置文件并add到Environment的PropertySources列表里
Springboot应用在启动的时候准备好了环境后就会触发 ApplicationEnvironmentPreparedEvent 事件就开始执行读取配置的逻辑:
首先加载当前激活的Profile列表
然后从默认的 classpath:/,classpath:/config/,file:/,file:/config/ 这四个目录下
查找默认的application-{profile}名字对应的配置文件,配置文件格式支持两大类(Properties和Yaml)既:properties xml yml yaml
可以修改默认的配置文件名字(默认:application),可以指定多个比如 --springconfigname= application,demo
可以修改默认的配置文件路径,比如 --springconfiglocation= file:///C:/config/ (目录结尾不带“/”会按照文件处理,而不是目录,容易掉坑)
阅读源码入口就从他的onApplicationEvent开始跟即可,将自身添加到postProcessor列表里并执行postProcessEnvironment方法,核心逻辑是靠一个Loader内部类
new Loader(environment, resourceLoader)load()
大概就是,如果没有springprofilesactive 和 springprofilesinclude都没有特别指定激活的profile的话
没有特别指定profile的话就是:null + default,也就是我们常见的applicationproperties 和 application-defaultproperties这种
如果指定了那就是:null + 已经激活(pre-existing)的profile + springprofilesactive + springprofilesinclude
举个例子,假如激活了多个profile比如:--springprofilesactive=prd1,prd2,最终优先级上prd1 > prd2 > default(null)
1通过Java获取本机ip,可以使用InetAddress类的getLocalHost()方法。
2通过Spring Boot配置文件(比如applicationyml)来设置数据库连接,可以使用Spring Boot placeholder实现,如:${localip}:3306
3在SpringBoot应用程序启动时,程序可以在启动参数里指定localip属性,获取本机ip,并与端口号组合成数据库链接地址。
以上就是关于二、springboot配置文件全部的内容,包括:二、springboot配置文件、Springboot打成JAR包后读取外部配置文件、Springboot配置文件读取-ConfigFileApplicationListener等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)