Spring Boot 之 Profile --快速搞定多环境使用与切换
Spring Profile是Spring3引入的概念,主要用在项目多环境运行的情况下,通过激活方式实现多环境切换,省去多环境切换时配置参数和文件的修改,并且Spring profile提供了多种激活方法,例如配置文件,命令行,jvm参数设置等,下面将详细介绍下。
一、为什么要使用Profile
在平时在开发时,经常会出现在开发的时候使用一个开发数据库,测试的时候使用一个测试的数据库,而实际部署的时候需要一个数据库。以前的做法是将这些信息写在一个配置文件中,当我把代码部署到测试的环境中,将配置文件改成测试环境;当测试完成,项目需要部署到现网了,又要将配置信息改成现网的,既麻烦又容易出现问题。
而使用了Profile之后,我们就可以分别定义3个配置文件,一个用于开发、一个用户测试、一个用户生产,其分别对应于3个Profile。当在实际运行的时候,只需给定一个参数来激活对应的Profile即可,那么容器就会只加载激活后的配置文件,这样就可以大大省去我们修改配置信息而带来的烦恼。
二、Spring Profile激活方式
针对上面的问题,我们可以采用如下的方案来解决:在代码中新增多个配置文件,文件名可以是application-{profile}.properties,然后在applcation.properties文件中配置激活profile。
例如我们的应用环境有:dev、uat、prod 那么,我们可以添加 4 个配置文件:
1) applcation.properties - 公共配置
2) application-dev.properties - 开发环境配置
3) application-uat.properties - 测试环境配置
4) application-prod.properties - 生产环境配置
下面介绍下激活profile的方式:
1、配置文件激活
在applcation.properties文件 中可以通过以下配置来激活 profile:
# 激活dev环境的配置
spring.profiles.active = dev
spring.profiles.active = dev 表示当前环境激活application-dev.properties文件中的配置。
2、命令行
在 运行java -jar 时候激活:
java -jar spring-boot-demo.jar --spring.profiles.active=dev
3、虚拟机参数
配置虚拟机参数激活:

4、在Java代码中激活
在spring boot启动类添加如下代码即可:
System.setProperty("spring.profiles.active", "test");
Spring Boot之Profile多环境使用与切换的东西介绍完成啦
本博文来源于: https://www.cnblogs.com/haha12/p/11363341.html
Spring Boot 之 Profile --快速搞定多环境使用与切换的更多相关文章
- Spring Boot之Profile--快速搞定多环境使用与切换
Spring Profile是Spring3引入的概念,主要用在项目多环境运行的情况下,通过激活方式实现多环境切换,省去多环境切换时配置参数和文件的修改,并且Spring profile提供了多种激活 ...
- Spring boot 的profile功能如何实现多环境配置自动切换
通常服务端应用开发需要经过以下几个流程: 开发 -> 测试 -> RC验证 -> 上线 这就涉及到四个不同的环境,开发环境.测试环境.RC环境以及生产环境,为了避免不同环境之间相互干 ...
- 进击的 Ansible(二):如何快速搞定生产环境 Ansible 项目布局?
Tips:与前文 <进击的 Ansible(一):Ansible 快速入门> 一样,本文使用的 Ansible 版本 2.5.4,项目演示环境 MacOS.由于 Ansible 项目开发活 ...
- spring boot / cloud (十七) 快速搭建注册中心和配置中心
spring boot / cloud (十七) 快速搭建注册中心和配置中心 本文将使用spring cloud的eureka和config server来搭建. 然后搭建的模式,有很多种,本文主要聊 ...
- [Spring Boot 系列] 集成maven和Spring boot的profile功能
由于项目的需要, 今天给spirng boot项目添加了profile功能.再网上搜索了一圈,也没有找到满意的参考资料,其实配置并不难,就是没有一个one stop(一站式)讲解的地方,所以有了写这篇 ...
- Spring Boot 2.x 快速入门(下)HelloWorld示例详解
上篇 Spring Boot 2.x 快速入门(上)HelloWorld示例 进行了Sprint Boot的快速入门,以实际的示例代码来练手,总比光看书要强很多嘛,最好的就是边看.边写.边记.边展示. ...
- 手把手教你制作微信小程序,开源、免费、快速搞定
最近做了个"罗孚传车"的小程序 一时兴起,做了一个小程序,将个人收集的同汽车相关的行业资讯和学习资料,分享到小程序中,既作为历史资料保存,又提供给更多的人学习和了解,还能装一下:) ...
- 集成maven和Spring boot的profile 专题
maven中配置profile节点: <project> .... <profiles> <profile> <!-- 生产环境 --> <id& ...
- 004-集成maven和Spring boot的profile功能打包
参考地址:https://blog.csdn.net/lihe2008125/article/details/50443491 一.主要目标 1.通过mvn在命令行中打包时,可以指定相应的profil ...
随机推荐
- java初学者编译简单的计算机
package com.yj.test; import java.awt.BorderLayout; import java.awt.Font; import java.awt.GridLayout; ...
- java—字符串比较忽略大小写
String A = "aaa";String B = "AAA"; A.equalsIgnoreCase(B)
- sqlalchemy基本的增删改查
#encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String from sqlalchemy.ext.decl ...
- 将多个jar包重新打包成一个jar包
我介绍的方法是使用java命令来操作的,所以首先的安装jdk,这个就自己搞定吧. 提取jar包 为了将多个jar包打包成一个jar包,首先要将每个jar包的内容提取出来放到一个文件夹下,具体的操作命令 ...
- 使用Themleaf 模板引擎手动生成html文件
1.为什么要写这一篇呢? 在做一个邮件发送功能的时候,需要发送html邮件,javaMail 发送html 的时候需要有已经生成的html正文,所以需要提前将要发送的内容生成,所以就需要模板引擎来动态 ...
- [转帖]处理器结构--PipeLine&SuperScalar
处理器结构--PipeLine&SuperScalar https://www.jianshu.com/p/36c80a15a226 0.1 2018.06.12 16:12* 字数 148 ...
- Python内置函数Object
英文文档 class object Return a new featureless object. object is a base for all classes. It has the meth ...
- IE浏览器(js)new Date()带参返回NaN解决方法
function myNewDate(str) { if(!str){ return 0; } arr=str.split(" "); d=arr[0].split("- ...
- C++练习 | 类的继承与派生练习(1)
#include <iostream> #include <cmath> #include <cstring> #include <string> #i ...
- SpringBoot-2-基本配置
自定义启动配置 在resources下面新建一个banner.txt文件,里面写入自己想要的内容 /////////////////////////////////////////////////// ...