SpringBoot系列之配置文件加载位置
SpringBoot系列之配置文件加载位置
SpringBoot启动会自动扫描如下位置的application.properties或者application.yml文件作为Springboot的默认配置文件
- project:/config/(项目根目录下面config文件夹里的配置文件)
- project:/(项目根目录下面的配置文件)
- classpath:/config/(Resources文件夹下面config文件夹里的配置文件)
- classpath:/(Resources文件夹下面的配置文件))
如图所示,在resources文件夹下面建个config文件夹,往里面丢个application.properties配置文件,再往resources根目录下面也丢个application.properties文件
先往resources根目录下面的application.properties配置文件写几个参数:
# 配置端口为8070
server.port=8070
# 配置contextPath
server.servlet.context-path= /example
再往config文件夹下面的application.properties配置文件添加加个参数:
# 匹配端口为8081
server.port=8081
启动一下项目,在Springboot项目的控制台可以看到打印输出
当然你想写个控制类测试一下也是可以的
package com.example.springboot.properties.conroller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping(value = {"/hello","/sayHello"})
public String sayHello(){
return "hello world!";
}
}
ok,启动项目,经过验证访问 http://localhost:8081/example/hello 才是可以访问的,8080端口不可以访问,而context-path: /example是配在resources根目录下面的,这个属性配置没被覆盖,其端口配置就被覆盖了,所以我们可以得出,Springboot项目启动时是会先读取config文件夹里的配置文件,因为只配了一个端口的,所以就只读端口的,接着,低优先级的application.properties没被覆盖的配置属性还是会被读取的,所以我们也可以说配置文件的读取存在互补配置的特性
ok,继续验证,如图所示:
按照同样的方式,验证放在4个位置的application.properties读取优先级,通过实践验证,可以得出:
Springboot项目启动时会按照如下顺序由高到低读取配置,高优先级的属性会覆盖低优先级的属性,属性文件之间存在互补配置的特性
- project:/config/(项目根目录下面config文件夹里的配置文件)
- project:/(项目根目录下面的配置文件)
- classpath:/config/(Resources文件夹下面config文件夹里的配置文件)
- classpath:/(Resources文件夹下面的配置文件))
ok,这里介绍了Springboot项目启动时属性文件的读取顺序,当然我们也是可以通过spring.config.location
来指定默认配置文件的位置
可以将参数加在启动时候的虚拟机参数里:
代码 -Dspring.config.location=D:/application.properties
项目启动参数里加也是可以的
丢在application.properties配置文件里?
很显然是不起效的,因为一个配置文件,肯定不能指定其它配置文件
java -jar命令也是可以的,首先要maven package
java -jar springboot-properties-config-0.0.1-SNAPSHOT.jar --spring.config.location=D:/application.properties
idea有些版本是有teminal命令台,可以直接在里面敲命令,没有的话就只能通过cmd直接敲命令的
SpringBoot系列之配置文件加载位置的更多相关文章
- SpringBoot——配置文件加载位置及外部配置加载顺序
声明 本文部分转自:SpringBoot配置文件加载位置与优先级 正文 1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者applic ...
- springboot配置文件加载位置
springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件 –file:./config/ – ...
- SpringBoot配置文件加载位置与优先级
1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件 –fil ...
- springboot深入学习(一)-----springboot核心、配置文件加载、日志配置
一.@SpringBootApplication @SpringBootApplication是spring boot的核心注解,源码如下: 相当于:@Configuration+@EnableAut ...
- 配置文件加载位置与多profile文件
一. 我们在编写配置文件时,文件名可以是: application-{profile}.properties 例如:我们有几个配置文件对应的是项目不同时期的配置文件 1.application-sit ...
- 【串线篇】spring boot配置文件加载位置
springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件 (1)–file:./config/ ...
- 关于gradle与maven对springboot项目的配置文件加载异同
先说下缘由吧,由于年后跳槽换了家公司,构建项目工具也有maven改成gradle了,所以在搭建框架进行开发打包过程中难免会遇到一些意想不到的问题. 本文简述下打包扫描加载配置文件的异同吧. maven ...
- SpringBoot之配置文件加载位置
1.SpringBoot启动会扫描application.properties或者application.yml文件作为springboot的配置文件.默认创建项目生成application.prop ...
- 3springboot:springboot配置文件(配置文件占位符、Profile、配置文件的加载位置)
1.配置文件占位符 RaandomValuePropertySourcr:配置文件可以使用随机数 ${random.value} ${random.int} ${random.long ...
随机推荐
- packstack-ironic
安装openstack Pike版本, 其它版本安装方法类似. centos7.6 packstack目前对NetworkManager 还不支持,我们修改下配置: systemctl disable ...
- docker下MySQL的主从复制
MySql的主从复制 sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7) sudo docker run -p 3339:3306 --name mas ...
- C#的语法----程序结构(2)
接下来我们继续学习程序流程控制的语法! switch-case 用来处理多条件的定值的判断. 语法: switch(变量或者表达式的值) { case value1:要执行的代码1: break; c ...
- R学习
R内容: R-1 基础 R-2 基础绘图 R-3 t分布--t置信区间--t检验 R-4 方差分析 R-5 相关分析-卡方分析 R-6 线性回归模型分析流程 R实战第7章 线性回归 逻辑回归 主成分分 ...
- Fiddler之模拟响应、修改请求或响应数据(断点)
在测试过程中,有时候需要修改请求或响应数据,或者直接模拟服务器响应,此时可以使用fiddler进行此类操作.可以使用断点功能完成. 一.修改请求数据 在发起请求后,需要修改请求的数据时,可以设置请求前 ...
- plantuml-绘制状态图和活动图和部署图
背景 状态图:对象的所有状态,以及基于事件发生的状态改变的过程: 活动图:用例的工作流程: 部署图:系统的软硬件物理体系结构: 状态图 基本语法 元素 语法 说明 开始和结束状态 [*] 标识开始和结 ...
- Springboot关于tomcat容器配置、三大组件配置、拦截器配置
原文地址:http://www.javayihao.top/detail/172 1.tomcat配置 Springboot默认使用的就是嵌入式servlet容器即tomcat,对于web项目,如果使 ...
- TP5 where多条件查询
引用 : https://blog.csdn.net/haibo0668/article/details/78203170/
- scrapy在pycharm配置启动(无需命令行启动)
一.新建文件 run.py这个名字随意哈 方法一. from scrapy.cmdline import execute execute(['scrapy','crawl','爬虫程序名字','-a' ...
- 写了个爬虫代理ip的脚本给大家使用
写了个爬虫代理ip的脚本给大家使用 一.代码 import requests from lxml.html import etree url = 'http://www.kuaidaili.com/f ...