(四) spring boot 多环境配置
由于在实际的工作中需要对于不同的环境来进行调试和写bug,所以我们需要一个快捷的方式来进行各个环境的切换,比如说开发、测试、生产三个环境,如果需要从一个环境切换到另一个环境,肯定不可以去修改配置文件,所以我们就要切换一下配置文件
配置文件中记录了很多内容,包括数据库连接、中间件链接、还有一些常量参数的配置等等,这些都是要陪知道配置文件当中的
本文主要介绍的便是在springboot中配置文件的切换与部分使用
自定义参数
我们对于有些可配置,或者一些有可能会变的量,都会选择存放在配置文件当中,并在程序中做一个映射,将配置文件中的参数映射到程序当中。
我们可以将这些变量定义在配置文件 application.yml 中
com:
banana:
name: Banana
title: CSDN博客
在程序中我们就可以做出映射,使用@Value(“name”)注解即可
@Value("${com.banana.name}")
private String name;
@Value("${com.banana.title}")
private String title;
这样我们就可以将值映射到我们的程序当中
目前这些内容我们是在开发环境做的,但是有时候我们的程序写完之后,需要将其进行在测试环境上部署,在测试环境上我们需要配置不同的name和title,这时候我们就需要将name和title进行修改。
但是这样来直接修改的话是不可取的,所以我们需要将配置文件进行修改,整理出来的配置文件一个用于开发化境,另外一个用于测试化境,这样我们就可以在不同环境使用不同的配置文件,而不需要再去修改
配置多个配置文件
我们的springboot项目本身是只有一个配置文件的,名为application.properties或者application
.yml
我们对其进行修改,修改为多个配置文件,开发环境为 application-dev.yml ,测试环境为 application-test.yml ,我们则可以在不同环境的配置文件进行不同的配置
比如说:
application-dev.yml
com:
banana:
name: Banana-dev
title: CSDN博客
application-test.yml
com:
banana:
name: Banana-test
title: CSDN博客
程序中的调用
@RestController
public class HelloWorldController {
@Value("${com.banana.name}")
private String name;
@Value("${com.banana.title}")
private String title;
@GetMapping("hello")
private String hello() {
return "欢迎来到 " + name + " 的 " + title;
}
}
配置程序运行启动方式
通过jar包启动
java -jar xxx.jar --spring.profiles.active=test
和平常的jar包启动方式相同,都是通过 java -jar 方式来启动jar包,只不过我们在其后添加了一句 --spring.profiles.active=test 用来标识是哪个配置文件生效
程序运行,在swagger页面进行测试,如此我们便可达到不同环境启动的效果
在idea中如何配置不同环境启动
idea中,选择Edit Configuration
下方有一个Active profiles选项,我们选择这个选项进行启动环境的选择,要和在配置文件上的命名相对应,是什么环境,我们就配置什么环境
如果需要添加新的环境,只需要在左上角点击复制按钮,修改Name和Active profiles,即可实现不同环境启动
在启动时要记得选择是哪个启动,可以开发和测试同时启动进行测试是否成功
推荐阅读
Spring Boot 配置文件详解:自定义属性、随机数、多环境配置等
本系列文章
(一) SpringBoot 项目初始化 + 配置swagger页面
推荐阅读