Java springboot 配置文件与多环境配置与运行优先级
作者:V红太阳 发布时间:2022-08-03 03:36:01
前言
提问:springboot项目,开发环境、测试环境和生产环境配置文件如何分开表示?
答:多profile文件方式
1、多环境配置(profile)
1.1、properties文件配置
application.properties:主配置文件
主配置文件配置决定加载哪个环境的配置文件
spring.profiles.active=dev
根据spring.profiles.active值,选择加载不同环境配置
application-{profile}.properties
开发、测试、生产环境配置文件:
application-dev.properties:开发环境配置文件
application-test.properties:测试环境配置文件
application-prod.properties:生产环境配置文件
1.2、YML文件配置
application.yml:主配置文件
主配置文件配置决定加载哪个环境的配置文件
spring:
profiles:
active:dev
根据spring.profiles.active值,选择加载不同环境配置
application-{profile}.yml
开发、测试、生产环境配置文件:
application-dev.yml:开发环境配置文件
application-test.yml:测试环境配置文件
application-prod.yml:生产环境配置文件
1.3、修改主配置文件切换配置
1.3.1、切换生产配置
#默认配置
server:
port: 8080
#切换配置
spring:
profiles:
active: prod
1.3.2、切换开发配置
#开发环境配置
server:
port: 8080
#切换配置
spring:
profiles:
active: dev
1.3.3、切换测试配置
#测试环境配置
server:
port: 8080
#切换配置
spring:
profiles:
active: test
1.4、命令行激活配置文件
1.4.1、命令行激活配置文件
java -jar springboot-0.0.1-SNAPSHOT.jar--spring.profiles.active=dev
1.4.2、虚拟机参数激活
java -Dspring.profiles.active=dev -jar springboot-0.0.1-SNAPSHOT.jar
2、默认配置文件
Spring Boot启动时会扫描以下5个位置的application.properties或apllication.yml文件,并将它们作为 Spring boot的默认配置文件。
file:./config/"/
file:/config/
file:./
classpath:/config/
classpath:/
2.1、file
指当前项目根目录;
2.2、classpath
指当前项目的类路径,即resources目录。
注意事项:
位于相同位置的 application.properties 的优先级高于application.yml
所有位置的文件都会被加载,高优先级配置会覆盖低优先级配置,形成互补配置,即:
存在相同的配置内容时,高优先级的内容会覆盖低优先级的内容;
存在不同的配置内容时,高优先级和低优先级的配置内容取并集。
3、外部配置文件
可通过指定外部配置文件的路径(默认配置文件失效)
3.1、spring.config.location
java -jar xxxx.jar --spring.config.location=外部文件
3.2、spring.config.additional-location
默认配置文件公共生效,其优先级是最高。.
java -jar xxxx.jar --spring.config.additional-location=外部文件
案例
4、配置文件优先级
以下是常用的 Spring Boot 配置形式及其加载顺序(优先级由高到低)
命令行参数
配置文件(YAML文件、Properties文件)
@Configuration 注解类上的@PropertySource 指定的配置文件
通过 SpringApplication.setDefaultProperties指定的默认属性
配置文件
来源:https://blog.csdn.net/s445320/article/details/129933138


猜你喜欢
- 目录一、什么是RPC?二、实现RPC需要解决那些问题?1. 约定通信协议格式2. 序列化方式3. TCP粘包、拆包4. 网络通信框架的选择三
- 前言本文将提供一个redis的工具类,可以用在Spring boot以及Spring Cloud项目中,本工具类主要整合了将Redis作为N
- 一、需求描述拼图是一款益智类经典游戏了,本游戏学习了一些前辈们的经验,整体来说讲,将图片用切图工具进行切割,监听用户手指滑动事件,当用户对凌
- Authentication使用SpringSecurity可以在任何地方注入Authentication进而获取到当前登录的用户信息,可谓
- 需求当游戏显示3d场景及其UI的时候。玩家左右晃动手机的时候,UI界面会随之左右偏移。上下晃动的时候,3D场景会随之上下偏移。手机停止晃动的
- Android绘图操作,通过继承View实现,在onDraw函数中实现绘图。下面是一个简单的例子:public class AndroidT
- spring中事务处理原理 利用aop生成代理对象执行带有Transactional事务注解的
- 本文实例讲述了C#实现的文件压缩和解压缩类。分享给大家供大家参考。具体分析如下:这个C#代码包含了几个类,封装了文件压缩和解压缩常用的方法,
- 题外话:学习.NET已经有一年了,从C#->ASP.NET->WPF。主要以看电子书为主,比较少写代码。现在回头学习以前接触过的
- 学习初衷:在工作实际开发过程中,原有的安卓控件已不能满足实际的功能需求,而且有些应用还需要一些独特的展示效果,这时就需要自定义控件来定制控件
- 1.拉取centos镜像docker pull centos:72.基于拉取到的镜像运行一个容器docker run -it --name
- 最近在做一个搜索相关的项目,需要爬取网络上的一些链接存储到索引库中,虽然有很多开源的强大的爬虫框架,但本着学习的态度,自己写了一个简单的网络
- 本文实例为大家分享了Android实现类似微信视频接听的具体代码,供大家参考,具体内容如下1、背景需求:业务需要接入视频审核功能,在PC 端
- 本文实例讲述了C#.net实现在Winform中从internet下载文件的方法。分享给大家供大家参考。具体如下:自己做了一个通用的软件自动
- 首先,我们看看Map架构。如上图:Map 是映射接口,Map中存储的内容是键值对(key-value)。AbstractMap 是继承于Ma
- Logback简介1、logback和log4j是同一个作者,logback可以看作是log4j的升级版2、logback分为三个模块, l
- 表关联上一篇介绍了JPA的简单使用,这一篇介绍JPA在表关联上的使用一对一配置参数JPA对于数据实体一对一映射使用的是@OneToOne注解
- springcloud整合stream,rabbitmq实现消息驱动功能1.代码实现:创建项目stream添加依赖<parent>
- 本文实例为大家分享了Java实现斗地主小游戏的具体代码,供大家参考,具体内容如下原理图:斗地主过程: * 1
- 本文实例讲述了Android编程实现图片背景渐变切换与图层叠加效果。分享给大家供大家参考,具体如下:本例要实现的目的:1.图片背景渐变的切换