SpringBoot的yml多环境配置3种方法

news/2024/10/31 1:23:14/

目录

方式一:多个yml文件

步骤一、创建多个配置文件

步骤二、applicaiton.yml中指定配置

方式二: 单个yml文件

方式三:在pom.xml中指定环境配置

步骤一、创建多个配置文件

步骤二、在application.yml中添加多环境配置属性

步骤三、在pom.xml中指定使用的配置

避坑:不能识别符号@

总结:


方式一:多个yml文件

步骤一、创建多个配置文件

application.yml      #主配置文件
application-dev.yml  #开发环境的配置
application-prod.yml #生产环境的配置
application-test.yml #测试环境的配置

步骤二、applicaiton.yml中指定配置

在application.yml中选择需要使用的配置文件(当选择的文件和application.yml文件存在相同的配置时,application.yml中的配置会被覆盖掉)

spring:profiles:active: dev #需要使用的配置文件的后缀

方式二: 单个yml文件

#激活dev环境配置
spring:profiles.active: dev# 开发环境配置
spring:profiles: devdatasource:url: jdbc:mysql://127.0.0.1:3306/dev?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTCusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driver
server:port: 8080# 测试环境配置
spring:profiles: testdatasource:url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTCusername: rootpassword: testdriver-class-name: com.mysql.jdbc.Driver
server:port: 88# 生产环境配置
spring:profiles: proddatasource:url: jdbc:mysql://localhost:3306/prod?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTCusername: rootpassword: proddriver-class-name: com.mysql.jdbc.Driverserver:port: 99

配置默认的profile为dev,其他环境可以通过指定启动参数来使用不同的profile,比如:
测试环境:java -jar 项目.jar --spring.profiles.active=test
生产环境:java -jar 项目.jar --spring.profiles.active=prod

方式三:在pom.xml中指定环境配置

步骤一、创建多个配置文件

application.yml      #主配置文件
application-dev.yml  #开发环境的配置
application-prod.yml #生产环境的配置
application-test.yml #测试环境的配置

步骤二、在application.yml中添加多环境配置属性

#多环境配置profiles:active: @profiles.active@

步骤三、在pom.xml中指定使用的配置

   <profiles><profile><id>dev</id><activation><!--  默认激活--><activeByDefault>true</activeByDefault></activation><properties><profiles.active>dev</profiles.active></properties></profile><profile><id>prod</id><properties><profiles.active>prod</profiles.active></properties></profile><profile><id>test</id><properties><profiles.active>test</profiles.active></properties></profile></profiles>

true配置为true则激活对应profile的配置。

或如图所示,在maven->profiles下勾选动态激活需要使用的配置

避坑:不能识别符号@

在步骤二中配置的@profiles.active@,启动会报异常,不能识别@符号。解决方法:

在pom.xml中设置filtering为true

     <build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering> <includes><include>**/*.*</include></includes></resource></resources></build>

总结:

三种方式都可以实现多环境的配置。在application.yml主配置文件中做项目通用的配置,在其他配置文件中做不同环境下的配置,以避免重复配置的情况。


http://www.ppmy.cn/news/62553.html

相关文章

Java的自定义注解

java元注解和自定义注解的区别 Java的自定义注解是一种元数据&#xff0c;可以应用于类、方法、字段等程序元素上&#xff0c;以提供额外的信息或指示。 自定义注解包括注解声明、元注解、运行时处理器三个部分。注解声明指定了注解的名称、作用域、成员等信息&#xff1b;元注…

ElastaicSearch 查询

match_all&#xff1a;匹配所有 match&#xff1a;分词单个匹配 【分词包含query&#xff0c;就可以被检索到&#xff0c;类似contains包含】 multi_match&#xff1a;分词多个匹配 【任何一个分词包含query&#xff0c;就可以被检索到】 term&#xff1a;全词单个匹配 terms&a…

JSP企业电子投票系统(源代码+论文+开题报告+外文翻译+文献综述)

J2EE已经成为开发商创建电子商务应用的事实标准。正是认识到J2EE平台作为一种可扩展的、全功能的平台&#xff0c;可以将关键的企业应用扩展到任何Web浏览器上并可适合多种不同的Internet数据流、可连接到几乎任何一种传统数据库和解决方案、使企业经理根据多家企业所提供的产品…

QML信号与信号槽实践指南:轻松掌握现代软件开发的关键技术

这里写目录标题 &#xff08;一&#xff09;QML简介1.1 QML概述1.2 QML的基本语法1.3 QML与C的交互 &#xff08;二&#xff09;QML信号基本概念2.1 QML中的信号2.2 QML信号的作用与优势 &#xff08;三&#xff09;QML信号槽基本概念3.1 QML中的槽3.2 QML信号槽的使用与实践 &…

石头科技2022年营收实现双位数增长,以技术实力打响创新价值战

近日&#xff0c;石头科技披露了2022年度财务报告&#xff0c;报告显示&#xff0c;在在较大内外部压力下&#xff0c;石头科技2022年营收依然实现双位数增长&#xff0c;且境内外销售收入平稳增长。 该公司在近年来不断完善其产品矩阵&#xff0c;目前已推出手持无线吸尘、商…

Java 反射浅析与使用

获取Class对象 加载class的方式 通过Class.forName(className) className&#xff1a;全类名(类包名类名)通过类名.class方法获取通过对象的getClass()方法获取 Class<?> aClass Class.forName("com.hww.test.Info");System.out.println("Class.forNa…

Word控件Spire.Doc 【文本框】教程(1):如何在 C 语言中设置 Word 文本框的内部边距

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

dangerousRemoteUrlIpcAccess

问题描述&#xff1a; 在使用Tauri窗口加载外部链接时&#xff0c;需要也能继续使用Tauri API与Rust交互。按照官方发布通告中的代码添加配置&#xff1a; "security": {"dangerousRemoteUrlIpcAccess": [ { "windows": ["main", &qu…