spring boot 环境配置(profile)切换
Spring Boot 集成教程
- Spring Boot 介绍
- Spring Boot 开发环境搭建(Eclipse)
- Spring Boot Hello World (restful接口)例子
- spring boot 连接Mysql
- spring boot配置druid连接池连接mysql
- spring boot集成mybatis(1)
- spring boot集成mybatis(2) – 使用pagehelper实现分页
- spring boot集成mybatis(3) – mybatis generator 配置
- spring boot 接口返回值封装
- spring boot输入数据校验(validation)
- spring boot rest 接口集成 spring security(1) – 最简配置
- spring boot rest 接口集成 spring security(2) – JWT配置
- spring boot 异常(exception)处理
- spring boot 环境配置(profile)切换
- spring boot redis 缓存(cache)集成
概述
本文介绍spring boot项目中环境配置切换的过程。
在实际的项目开发中,经常需要不同的环境配置,如开发时不能直接连生产环境的数据库,而上线时就需要连生产环境的数据库。这就要求项目能够切换环境配置。
spring boot项目中,application.properties
是配置文件,实际上我们还可以引入不同环境的配置文件,如:application-dev.properties
,application-prod.properties
,通过指定spring.profiles.active
的值切换配置文件,比如在application.properties
中指定:
spring.profiles.active=xxx
就可加载application-xxx.properties
配置。
切换环境的常用方法
1.上面提到的application.properties
设置spring.profile.active
的值。
2.命令行中指定参数
通过指定jvm系统参数
java -jar -Dspring.profiles.active=prod springboot-profile-demo 0.0.1-SNAPSHOT.jar
通过指定应用参数
java -jar --spring.profiles.active=dev springboot-profile-demo 0.0.1-SNAPSHOT.jar
项目内容
创建一个简单的spring boot项目,引入不同的环境配置,用不同方法切换环境,访问接口打印当前环境。
要求
- JDK1.8或更新版本
- Eclipse开发环境
如没有开发环境,可参考前面章节:[spring boot 开发环境搭建(Eclipse)]。
项目创建
创建spring boot项目
打开Eclipse,创建spring boot的spring starter project项目,选择菜单:File > New > Project ...
,弹出对话框,选择:Spring Boot > Spring Starter Project
,在配置依赖时,勾选web
,完成项目创建。
项目配置
如下图,除了application.properties
,还添加了:
application-dev.properties
- 开发环境配置application-prod.properties
- 生产环境配置application-test.properties
- 测试环境配置
application.properties文件内容
## 生产/开发等环境配置, 加载不同的配置文件
spring.profiles.active=dev
## 服务器端口,默认是8080
server.port=8096
application-dev.properties文件内容
## profile 名称
profile.name=dev
application-prod.properties文件内容
## profile 名称
profile.name=prod
application-test.properties文件内容
## profile 名称
profile.name=test
代码实现
项目目录结构如下图,我们实现了一个接口,访问此接口打印当前环境名称。
HelloController类
通过@Value
注解读取profile.name
,赋给profileName
。访问/hello
接口打印当前环境名称。
@RestController
public class HelloController {
@SuppressWarnings("unused")
private static final org.slf4j.Logger log = LoggerFactory.getLogger(HelloController.class);
// 当前环境配置名称
@Value("${profile.name}") //读取当前环境配置名称
private String profileName;
@RequestMapping(value="/hello", method = RequestMethod.GET, produces="application/json")
public String hello() {
return "当前环境:" + profileName;
}
}
运行
修改application.properties文件中的spring.profiles.active
,加载对应的配置文件,然后访问接口/hello
## 生产/开发等环境配置, 加载不同的配置文件
spring.profiles.active=test
Eclipse左侧,在项目根目录上点击鼠标右键弹出菜单,选择:run as -> spring boot app
运行程序。 打开Postman访问接口,运行结果如下:
总结
spring boot 环境配置(profile)切换的更多相关文章
- spring boot环境配置以及开发工具选择(Spring一)
首先安装java jdk jdk的安装参考:https://blog.csdn.net/zhys0902/article/details/79499329配置效果如下: 接下来是maven的相关配置 ...
- spring boot环境配置
Eclipse+Maven创建webapp项目<一> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...
- Spring boot 的profile功能如何实现多环境配置自动切换
通常服务端应用开发需要经过以下几个流程: 开发 -> 测试 -> RC验证 -> 上线 这就涉及到四个不同的环境,开发环境.测试环境.RC环境以及生产环境,为了避免不同环境之间相互干 ...
- Spring Boot 属性配置&自定义属性配置
在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring boot中的模块化配置,在pom.xml中依赖的每个Starter都有默认配置,而这些默认配 ...
- Spring Boot属性配置&自定义属性配置
一.修改默认配置 例1.spring boot 开发web应用的时候,默认tomcat的启动端口为8080,如果需要修改默认的端口,则需要在application.properties 添加以下记录: ...
- Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...
- 玩转spring boot——properties配置
前言 在以往的java开发中,程序员最怕大量的配置,是因为配置一多就不好统一管理,经常出现找不到配置的情况.而项目中,从开发测试环境到生产环境,往往需要切换不同的配置,如测试数据库连接换成生产数据库连 ...
- Spring Boot 环境变量读取 和 属性对象的绑定
网上看到的一些方法,结合我看到的 和我们现在使用的.整理成此文: 第一种方法 参见catoop的博客之 Spring Boot 环境变量读取 和 属性对象的绑定(尊重原创) 第二种方法 class不用 ...
- Spring Boot 属性配置和使用
Spring Boot 属性配置和使用 Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot ...
随机推荐
- 在ListView头和尾添加东西
直接上代码 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view ...
- R WLS矫正方差非齐《回归分析与线性统计模型》page115
rm(list = ls()) A = read.csv("data115.csv") fm = lm(y~x1+x2,data = A) coef(fm) A.cooks = c ...
- base64和blob
base64是二进制数据的一个编码格式,就像utf8一样的东西,他跟json一样,也是前后端交互能够相互识别的数据,他更多的是用来传递文件数据,并且如果是图片的base64,可以用来压缩 获取base ...
- oracle进入CDB
第一步:使用sys登陆 CONN sys/change_on_install AS SYSDBA; 第二步:查看现在的容器名称 SHOW con_name; 第三步:改变容器为PDB ALTER SE ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-search
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- Problem J. Joseph’s Problem 约瑟夫问题--余数之和
链接:https://vjudge.net/problem/UVA-1363 题意:给出n k,当 i 属于 1~n 时 ,求解 n% i 的和 n 和 k 的范围都是 1 到 10^9; 商相同 ...
- 云服务器CentOS7系统环境配置(jdk和tomcat)
配置jdk 下载与安装 如果没有安装wget,首先安装wget工具 yum -y install wget 安装完成后,在网上找到jdk的下载链接,可以在官网找点击此处到官网下载,如果官网下载慢也可以 ...
- 2020/2/21 fiyocms代码审计
0x00 前言 上午上了网课,一上午就装好了cms,下午还有网课,要是结束的早就进行审计. 解决了一下phpstudy使用过程中: Forbidden You don't have permissio ...
- 10nm Ice Lake处理器值得等待!
处理器.显卡等产品往往习惯先在 Linux 平台测试,所以 Linux 的内核源码往往成为曝光新品的宝藏之地. 经查,在 Linux v5.2 内核最新源码的 x86 分支中,出现了多款 Ice La ...
- HihoCoder第十一周:树中的最长路
#1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...