Spring Boot使用profile如何配置不同环境的配置文件
作者:贺小五 发布时间:2023-11-25 12:52:36
在springboot的开发中,有时候我们会有不同的配置,例如日志打印,数据库连接等,开发,测试,生产每个环境可能配置都不一致,还好,springboot支持通过不同的profile来配置不同环境的配置,下面就大致介绍一下yml配置文件跟properties配置文件怎么使用profile配置不同环境的配置文件...
先介绍一下开发环境:
jdk版本是1.8
springboot的版本是1.4.1
开发工具为 intellij idea
我们先来介绍,使用一个yml文件,通过不同的profile来配置属性文件:
1.首先,我们先创建一个名为 application.yml的属性文件,如下:
2.然后打开文件,输入一下内容:
#查看springboot开启了哪些配置
debug: false
spring:
profiles:
active: dev
---
#开发环境配置
spring:
profiles: dev
server:
port: 8080
---
#测试环境配置
spring:
profiles: test
server:
port: 8081
---
#生产环境配置
spring:
profiles: pro
server:
port: 8082
非常简单的配置,application.yml文件分为四部分,使用一组(---)来作为分隔符,第一部分,为通用配置部分,表示三个环境都通用的属性,spring.profiles.active稍后解释.
后面三段分别为,开发,测试,生产,都用spring.profiles指定了一个值(开发为dev,测试为test,生产为pro),这个值表示该段配置应该用在哪个profile里面,
PS:一定要注意!!一定要注意!!一定要注意!!所有属性后面跟的value要跟 ":" 隔开一个空格,否则,配置无效!!!配置无效!!!配置无效!!!我当初就掉进来了,在此告知各位,别跟我一样掉进来!!!
如果,我们是本地启动,在通用配置里面,可以设置调用哪个环境的profile,也就是第一段的spring.profiles.active=XXX;
上面的XXX是每个环境的 spring.profiles对应的value,通过这个,可以控制本地启动调用哪个环境的配置文件,例如:
spring:
profiles:
active: dev
加载的,就是开发环境的属性,如果dev换成test,则会加载测试环境的属性,生产也是如此,
PS:如果spring.profiles.active没有指定值,那么只会使用没有指定spring.profiles文件的值,也就是只会加载通用的配置
如果是部署到服务器的话,我们正常打成jar包,发布是时候,采用:
--spring.profiles.active=test或者pro 来控制加载哪个环境的配置,完整命令如下:
java -jar xxxxx.jar --spring.profiles.active=test 表示加载测试环境的配置
java -jar xxxxx.jar --spring.profiles.active=pro 表示加载生产环境的配置
上面介绍完了,我们本地启动一下,先将spring.profiles.active的值设置为dev,看看日志打印结果:
通过日志分析,可以看到,打印了profiles的值为dev,下面看看打印的端口号
发现,端口号是8080说明加载了dev的配置;
下面我们来试试把active的值换成test,重启看看:
active变成了test,
端口变为了8081,说明,加载的是test的配置,
接下来,就是使用多个yml配置文件进行配置属性文件:
如果是使用多个yml来配置属性,我们则可以这么使用,通过与配置文件相同的明明规范,创建application-{profile}.yml文件,将于环境无关的属性,放置到application.yml文件里面,可以通过这种形式来配置多个环境的属性文件,在application.yml文件里面指定spring.profiles.active=profiles的值,来加载不同环境的配置,如果不指定,则默认只使用application.yml属性文件,不会加载其他的profiles的配置
使用properties配置多个环境配置文件
如果使用application.properties进行多个环境的配置,原理跟使用多个yml配置文件一致,也是通过application-{profile}.properties来控制加载哪个环境的配置,将于环境无关的属性,放置到application.properties文件里面,通过spring.profiles.active=profiles的值,加载不同环境的配置,如果不指定,则默认加载application.properties的配置,不会加载带有profile的配置
总结
以上所述是小编给大家介绍的Spring Boot使用profile如何配置不同环境的配置文件,希望对大家有所帮助.
来源:https://my.oschina.net/u/2278977/blog/807958


猜你喜欢
- 本文实例为大家分享了Unity苹果手机Taptic震动的具体代码,供大家参考,具体内容如下文件:ios震动.zip将上方文件解压之后将Mul
- java引用传递的三种类型我这里使用了mldn视频里的例子,只用于学习交流。第一种结果:调用前:50调用后:1000分析:理解:好理解第二种
- 简介mutable(可变)和immutable(不可变)对象是我们在java程序编写的过程中经常会使用到的。可变类型对象就是说,对象在创建之
- FTP简介文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模
- 在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计。java.awt中定义了多种布局类,每种布局类对应
- 从概念上看,值类型直接存储其值,而引用类型存储对其值的引用。这两种类型存储在内存的不同地方。在C#中,我们必须在设计类型的时候就决定类型实例
- 如下所示:for (int i= 0; i<= 1084; i++) {if (String.valueOf(i+1).length(
- 使用注解来配置Action可以实现零配置,零配置将从基于纯XML的配置转化为基于注解的配置。使用注解,可以在大多数情况下避免使用
- 1.Maven依赖<!-- Kettle --><dependency> <grou
- 23种设计模式第十二篇:java模版方法模式定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义
- 这篇文章主要介绍了SpringBoot以war包形式部署到外部Tomcat过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有
- 首先说说什么叫回调函数?在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口
- 前言第二步理论上我们该写客户端了,但是,在此之前,需要先介绍下一些必要的方法以及操作。写代码还是要尽量的保证通用性,以便以后需要的时候可以拿
- 1、Aop 全程是Aspect Oriented Programming 即面向切面编程,通过预编译方式和运行期 * 实现程序功能的同一维
- 如何查看 Java 的字节码文件?在 Java 中,字节码文件.class实际上是二进制文件,并不能直接查看。要想查看,我们只能通过反编译对
- 1.用途在SpringBoot中,通过jasypt可以进行加密解密. 这个是双向的, 且可以配置密钥.2.使用:2.1通过UT创建工具类,并
- 简介本文主要讲解java 利用Selenium 操作浏览器网站时候,需要用的js的地方,代码该如何实现。调用JavaScriptwebdri
- Android 图片添加水印的实现方法实现效果图:手机端打水印(文字和图片)使用的是Bitmap、Matrix和Canvas类的一些方法,
- 一,二分法检索算法介绍二分法检索(binary search)又称折半检索,二分法检索的基本思想是设字典中的元素从小到大有序地存放在数组(a
- 本文实例为大家分享了Android实现按钮滚动选择效果的具体代码,供大家参考,具体内容如下效果图代码实现package com.demo.u