欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(四) spring boot 多环境配置

程序员文章站 2022-06-13 19:04:06
...

由于在实际的工作中需要对于不同的环境来进行调试和写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页面进行测试,如此我们便可达到不同环境启动的效果
(四) spring boot 多环境配置

在idea中如何配置不同环境启动

idea中,选择Edit Configuration
(四) spring boot 多环境配置
下方有一个Active profiles选项,我们选择这个选项进行启动环境的选择,要和在配置文件上的命名相对应,是什么环境,我们就配置什么环境
(四) spring boot 多环境配置
如果需要添加新的环境,只需要在左上角点击复制按钮,修改Name和Active profiles,即可实现不同环境启动
(四) spring boot 多环境配置
在启动时要记得选择是哪个启动,可以开发和测试同时启动进行测试是否成功

推荐阅读

Spring Boot 配置文件详解:自定义属性、随机数、多环境配置等

本系列文章

(一) SpringBoot 项目初始化 + 配置swagger页面

(二) SpringBoot 整合 MyBatis-plus

(三) SpringBoot之使用Swagger配置详解