SpringBoot配置文件的加载位置
1、springboot启动会扫描以下位置的application.properties或者application.yml文件作为SpringBoot的默认配置文件
--file:/config/
--file:/
--classpath:/config/
--classpath:/
优先级由高到低,高优先级的配置会覆盖低优先级的配置;
SpringBoot会从这个四个位置全部加载住配置文件;互补配置;
我们还可以通过spring.config.location来改变默认的配置文件位置
项目打包好以后,我们可以使用命令行参数的行驶,启动项目的时候来指定配置文件的新位置;指定的配置文件和默认加载的这些配置文件共同起作用形成互补配置
2、外部配置加载顺序
SpringBoot支持多种外部配置方式
这些方式优先级如下:
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config
SpringBoot也可以从以下位置加载配置;优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会行成互补配置;
1.命令行参数
2.来自java:comp/env的JNDI属性
3.Java系统属性(System.getProperties())
4.操作系统环境变量
5.RandomValuePropertySource配置的random.*属性值
6.jar包 外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
7..jar包 内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
8..jar包 外部的application.properties或application.yml(不带spring.profile)配置文件
9.jar包 内部的application.properties或application.yml(不带spring.profile)配置文件
10.@configuration注解类上的@PropertySource
11.通过SpringApplication.setDefaultProperties指定的默认属性
3、SpringBoo配置-自动配置原理
精髓:
1)、SpringBoot启动会加载大量的自动配置类
2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们不需要再来配置了)
4)、给容器中自动配置类添加组件的时候,会从properties类当中获取某些属性,我们就可以在 配置文件中指定这些属性的值;
xxxAutoConfiguration:自动配置类;
给容器中添加组件
xxxProperties:封装配置文件中相关属性;
4、自动配置类必须在一定的条件下才能生效;
我们怎么知道哪些自动配置类生效;
我们可以通过启用debug:true属性;来让控制台打印 自动配置报告,这样我们就可以很方便的知道哪些自动配置类生效;
SpringBoot配置文件的加载位置的更多相关文章
- 3springboot:springboot配置文件(配置文件占位符、Profile、配置文件的加载位置)
1.配置文件占位符 RaandomValuePropertySourcr:配置文件可以使用随机数 ${random.value} ${random.int} ${random.long ...
- springboot 配置文件的加载顺序
springboot 配置文件的加载顺序1.在命令行中传入的参数.2. SPRING APPLICATION JSON中的属性. SPRING_APPLICATION—JSON是以JSON格式配置在系 ...
- SpringBoot配置文件的加载优先级顺序
application.properties加载 Spring Boot启动会扫描以下位置的application.properties或者application.yml文件作为Spring Boot ...
- SpringBoot 静态资源 加载位置
1.配置自定义拦截器 /** * Copyright (C), 2017-2018, XXX有限公司 * FileName: WebConfig * Author: 丶Zh1Guo * Date: 2 ...
- SpringBoot配置文件优先级加载顺序
- SpringBoot系列之配置文件加载位置
SpringBoot系列之配置文件加载位置 SpringBoot启动会自动扫描如下位置的application.properties或者application.yml文件作为Springboot的默认 ...
- SpringBoot——配置文件加载位置及外部配置加载顺序
声明 本文部分转自:SpringBoot配置文件加载位置与优先级 正文 1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者applic ...
- SpringBoot是如何加载配置文件的?
前言 本文针对版本2.2.0.RELEASE来分析SpringBoot的配置处理源码,通过查看SpringBoot的源码来弄清楚一些常见的问题比如: SpringBoot从哪里开始加载配置文件? Sp ...
- SpringBoot启动如何加载application.yml配置文件
一.前言 在spring时代配置文件的加载都是通过web.xml配置加载的(Servlet3.0之前),可能配置方式有所不同,但是大多数都是通过指定路径的文件名的形式去告诉spring该加载哪个文件: ...
随机推荐
- codeforces 741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
题目链接:Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths 第一次写\(dsu\ on\ tree\),来记录一下 \(dsu\ o ...
- 在SQL Server 2018 Management Studio中修改表字段顺序
有时我们可能需要为一个已存在的数据库表添加字段,并且想让这个字段默认排的靠前一些,这时就需要为表字段重新进行排序,默认情况下在Management Studio中调整顺序并保存时会提示“不允许保存更改 ...
- Python day2_int以及string的常见方法1_笔记
Python中,主要的基本类型有:数字(int型).字符串(string型).列表(list型).元祖(tuple型).字典(direct型).布尔值(boolean型) 1.int型 1.强转int ...
- GCD LCM UVA - 11388
代码很短理解不容易,在这说不清,大家代码里寻真相. 为什么二者相除就可以A了多找点数试试理解理解. #include<stdio.h> #define mod 1000000007 #de ...
- [C#][Windows]]基于ArcFace2.0+红外双目摄像头的活体检测
废话不多说 直接上图 这个是demo中用到的双目摄像头,一个是红外的,一个是正常的rgb摄像头两个usb接口,在电脑上呈现两路摄像头通道程序检测RGB输出图像,当检测到有人脸时,用RGB人脸的位置到红 ...
- 网络安装OS(配置文件)
●无人值守安装KS文件(redhat用,删除下面中文). #LinuxIParm Config File #Generated by LinuxIParm Configurator #Boot Mod ...
- layui 下拉框不显示解决方法
添加以下代码 layui.use('form', function(){ var form = layui.form; form.render(); });
- spring cloud: zuul(四): 正则表达式匹配其他微服务(给其他微服务加版本号)
spring cloud: zuul(四): 正则表达式匹配其他微服务(给其他微服务加版本号) 比如我原来有,spring-boot-user微服务,后台进行迭代更新,另外其了一个微服务: sprin ...
- liunx权限管理之高级权限
高级权限 suid,sgid,sticky ======================================================== 文件权限管理之:高级权限 问题1: 为什么 ...
- Parking Lot CodeForces - 480E
大意: 给定01矩阵, 单点赋值为1, 求最大全0正方形. 将询问倒序处理, 那么答案一定是递增的, 最多增长$O(n)$次, 对于每次操作暴力判断答案是否增长即可, 也就是说转化为判断是否存在一个边 ...