SpringBoot中配置多环境的配置文件
目录
- 1. 前言
- 2. 配置文件的优先级
- 3. 引用外部的配置文件
- 4. 配置多环境的配置文件
- 4.1. 在配置文件中配置多环境
- 4.2. 在代码中配置多环境
- 4.3. 在项目启动时配置多环境
1. 前言
在我们的 SpringBoot
项目中,通常会有一个 application.yml
或 application.properties
的文件,这是整个 SpringBoot
项目的核心配置文件,通常文件中包含着端口、程序名、数据源等重要信息的配置
2. 配置文件的优先级
SpringBoot
项目中的 application.yml
或 application.properties
配置文件一共可以出现在如下 4
个位置
- 项目根目录下的
config
文件夹中 - 项目根目录下
classpath
下的config
文件夹中classpath
下
这四个位置的加载优先级依次为 1 > 2 > 3 > 4
,如果这 4
个位置中都有 application.yml
或 application.properties
文件,那么加载的优先级从 1
到 4
依次降低。SpringBoot
将按照这个优先级查找配置信息,并加载到 Spring
环境中
3. 引用外部的配置文件
默认情况下 SpringBoot
查找 application.yml
或 application.properties
并加载。如果开发者不想使用其作为配置文件名,也可以自己定义。在打包启动时指定文件的路径或名称
- 项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定文件名
java -jar xxx.jar --spring.config.name=filename
- 项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定外部配置文件的位置
java -jar xxx.jar --spring.config.location=classpath:/app.properties
- 当然我们也可以指定外部配置所在的文件夹,启动时会搜索并使用该文件夹下的配置文件
java -jar xxx.jar --spring.config.location=classpath:/config/
- 我们还可以同时配置多个路径,比如下面样例先加载外部配置文件,如果不存在外部配置文件的话则使用包内默认的配置文件
java -jar xxx.jar --spring.config.location=classpath:/,classpath:/config/
4. 配置多环境的配置文件
开发者在项目发布之前,一般需要频繁地在开发环境、测试环境以及生产环境之间进行切换,这个时候大量的配置需要频繁更改(如:数据库、redis、mongodb,MQ
等配置)。频繁修改带来了巨大的工作量,SpringBoot
中约定的不同环境下配置文件名称规则为
# profile:占位符表示当前环境的名称
application-{profile}.properties
4.1. 在配置文件中配置多环境
在 application.properties
中进行如下配置,则表示加载 application-dev.properties
文件
spring.profiles.active=dev
在 application.properties
中进行如下配置,则表示加载 application-prod.properties
文件
spring.profiles.active=prod
4.2. 在代码中配置多环境
在启动类的 main
方法上添加如下代码
@SpringBootApplication
public class Springdemo3Application {public static void main(String[] args) {SpringApplicationBuilder builder = new SpringApplicationBuilder(Springdemo3Application.class);builder.application().setAdditionalProfiles("dev");builder.run(args);}
}
4.3. 在项目启动时配置多环境
我们也可以在项目打包成 jar
包后启动时,在命令行中动态指定当前环境
java -jar xxx.jar --spring.profiles.active=dev
SpringBoot中配置多环境的配置文件相关推荐
- uni-app cli创建项目打包并配置多环境读取配置文件信息
uni-app cli创建配置多环境读取配置文件信息 在项目src下创建以下配置文件 在package.json中添加以下代码 VUE_APP_ENV:用来区分环境 NODE_ENV:用来定死打包目录 ...
- IDEA 中配置GIT环境
第五章 IDEA 中配置GIT环境 文章目录 第五章 IDEA 中配置GIT环境 前言 一.配置GIT忽略文件 二.IDEA中配置GIT 三.在项目中配置GIT 四.开始使用在IDEA中GIT 五.I ...
- springboot中配置了拦截器后,拦截器无效的解决方案之一
springboot中配置了拦截器后,拦截器无效的解决方案之一 参考文章: (1)springboot中配置了拦截器后,拦截器无效的解决方案之一 (2)https://www.cnblogs.com/ ...
- webstorm配置环境变量_webstorm中配置nodejs环境及npm步骤详细解说
这次给大家带来webstorm中配置nodejs环境及npm步骤详解,webstorm中配置nodejs环境及npm的注意事项有哪些,下面就是实战案例,一起来看一下. --nodejs安装及环境配置 ...
- Ubuntu中配置Java环境变量时,出现command not found问题解决记录
百度出Ubuntu中配置Java环境变量时,在利用sudo gedit /etc/profile 对profile编辑后, 在terminal中输入 sudo source /etc/profile, ...
- 【图文讲解】eclipse中配置maven环境+导入maven项目
1.检测eclipse是否有maven环境 打开import对话窗输入maven,如果下面红色方框里有东西可以跳过下一步的elipse中配置maven环境,如果方框里没有东西,按照下一步在eclips ...
- SpringBoot中配置为开发模式,代码修改后不用重新运行
场景 SpringBoot中配置为开发模式,修改代码后不用重新运行. 实现 打开pom.xml,添加依赖 <!-- 添加如下依赖,配置为开发模式,代码做了修改,不用重新运行--><! ...
- 如何在VS和CB中配置MySQL环境
这里,由于我的MySQL安装在D盘 MY SQL\MySQL Server 5.6该路径下,所以后面的路径均以D:\MY SQL\MySQL Server 5.6开头 在VS中配置MySQL环境 包含 ...
- Eclipse中配置CORBA环境
Eclipse中配置CORBA环境 1.下载openORB项目包和ORBStudio772项目包:http://yunpan.cn/QirGePvNijbGI (提取码:ea9b) 2.解压上面的压缩 ...
- SpringBoot中配置拦截器时,跨域失效
SpringBoot中配置拦截器时,跨域失效 前后段分离的项目,配置了跨域后,访问正常,但是配置了拦截器以后,有的访问正常,有的出现跨域问题,发现出现跨域问题的都是拦截器里面没有放行的请求. @Con ...
最新文章
- java: web应用中不经意的内存泄露
- 吴志强院士:CIM与城市未来
- pytorch 损失函数总结
- 常用模块(数据序列化 json、pickle、shelve)
- [Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel
- cmd不能用的解决方法
- mallco动态分配_malloc动态分配的内存的生存周期是多少?
- 【转】wpf从我炫系列2----布局控件的使用(下)
- 虽说下班时间自己说了算
- 机器学习基础(四)——持久化分类器
- PAT—1082 射击比赛(20)
- 推荐系统-Task05推荐系统流程构建
- 2017.8.12在线笔试编程真题总结
- 传世调试之-道士技能《解毒术》、《神光术》:无法正常升级。
- C++Builder:定时器Timer控件
- C++类型转换以及文件读写的总结
- Node-RED使用指南:7:配置与设定总结:其他配置
- 专访王豫翔:编程道路上的“三少三多”
- 如何在Windows 10上控制多个显示器的功能
- session有效时间问题
热门文章
- MLOps- 吴恩达Andrew Ng Selecting and Training a Model Week2 论文等资料汇总
- 算法:翻转链表 Reverse Linked List 三种方法实现,迭代解决人类思维,递归解决机器思维 reverse node
- 图片不能有透明通道AppStore images can't contain alpha channels or transparencies windows iOS
- java的css的块_CSS基础知识(概念、块级元素、行内元素、选择器)
- java 6 基础_java基础(6)
- Centos Python安装graphviz和pydotplus
- 基于udp的协议netty课设题目_Netty UDP示例
- 《how to write and publish a scientific paper》 Chapter 4
- 在VMware安装Ubuntu后一直停留在VMware Easy Install
- MongoDB 在windows shell环境下的基本操作和命令的使用示例(二)