Bootstrap

嗯,挺全乎儿的,Spring Boot 多环境配置都在这里了,你喜欢哪种?

  • 前言

  • Spring Boot 自带的多环境配置创建不同环境的配置文件指定运行的环境

  • Maven 的多环境配置创建多环境配置文件定义激活的变量pom 文件中定义 profiles资源过滤总结

  • 总结

前言

日常开发中至少有三个环境,分别是开发环境(),测试环境(),生产环境()。

不同的环境的各种配置都不相同,比如数据库,端口,地址等信息。

那么这么多环境如何区分,如何打包呢?

本篇文章就来介绍一下 中多环境如何配置,如何打包。

Spring Boot 自带的多环境配置

Spring Boot 对多环境整合已经有了很好的支持,能够在打包,运行间自由切换环境。

那么如何配置呢?下面将会逐步介绍。

创建不同环境的配置文件

既然每个环境的配置都不相同,索性将不同环境的配置放在不同的配置文件中,因此需要创建三个不同的配置文件,分别是、、。

「注意」:配置文件的名称一定要是或者格式。这个可以自定义,主要用于区分。

此时整个项目中就有四个配置文件,加上。

指定运行的环境

虽然你创建了各个环境的配置文件,但是 仍然不知道你要运行哪个环境,有以下两种方式指定:

配置文件中指定

在或者文件中指定,内容如下:

# 指定运行环境为测试环境
spring.profiles.active=test

以上配置有什么作用呢?

如果没有指定运行的环境, 默认会加载文件,而这个的文件又告诉 去找环境的配置文件。

运行 jar 的时候指定

 内置的环境切换能够在运行包的时候指定环境,命令如下:

以上命令指定了运行的环境是,是不是很方便呢?

Maven 的多环境配置

本身也提供了对多环境的支持,不仅仅支持项目,只要是基于的项目都可以配置。

对于多环境的支持在功能方面更加强大,支持、、等等因素来选择环境。

如何配置呢?下面逐一介绍。

创建多环境配置文件

创建不同环境的配置文件,分别是、、。

加上默认的配置文件同样是四个配置文件。

定义激活的变量

需要将激活的环境作用于,实际还是利用了这个属性,只是现在这个属性的取值将是取值于。配置如下:

spring.profiles.active=@profile.active@

实际上就是一个变量,在打包的时候指定的传入的就是值。

pom 文件中定义 profiles

需要在的文件中定义不同环境的,如下:

标签正是对应着配置文件中的。

标签指定了默认激活的环境,则是打包的时候不指定选项默认选择的环境。

以上配置完成后,将会在IDEA的右侧选项卡中出现以下内容:

1

可以选择打包的环境,然后点击即可。

或者在项目的根目录下用命令打包,不过需要使用指定环境,如下:

mvn clean package package -P test

中的的激活条件还可以根据、、来激活。这些内容都是在标签中配置,如下:

资源过滤

如果你不配置这一步,将会在任何环境下打包都会带上全部的配置文件,但是我们可以配置只保留对应环境下的配置文件,这样安全性更高。

这一步配置很简单,只需要在文件中指定过滤的条件即可,如下:

上述配置主要分为两个方面,第一是先排除所有配置文件,第二是根据动态的引入配置文件。

总结

至此,的多环境打包已经配置完成,相对来说挺简单,既可以在中选择环境打包,也同样支持命令指定环境打包。

总结

本文介绍了Spring Boot 的两种打包方式,每种方式有各自的优缺点,你更喜欢哪种呢?