Profile多环境配置以及结合Maven如何使用

文章目录

  • 一、前言
  • 二、如何使用profile多环境配置
    • 2.1、编写各环境的配置文件
    • 2.2、如何让配置文件生效
  • 三、结合Maven使用

一、前言

我们在开发项目的过程中,会遇到需要使用多套环境配置的情况,因为不同环境可能存在不同的配置,比如数据库连接等等,这时候就可以用 profile 来解决

二、如何使用profile多环境配置

2.1、编写各环境的配置文件

我们知道配置文件支持很多格式,这里以 yml 为例,一般来说我们的配置文件会存放在 src/main/resources 目录下,命名为 application.yml,而 profile 需要我们通过不同的命名来区分不同的环境配置,格式为:application-{profile}.yml,举个例子开发环境可以叫:application-dev.yml,测试环境可以叫:application-test.yml,生产环境可以叫:application-pro.yml,我们可以保留住原本的 application.yml 文件,用来放置一些所有环境相同的配置,把不同的配置放置在各自的配置文件里,列个表格:

文件名 说明
application.yml 存放各环境相同的配置,如端口号等
application-dev.yml 存放开发环境的配置,如mysql、redis、mongo等
application-test.yml 存放测试环境的配置,如mysql、redis、mongo等
application-pro.yml 存放生产环境的配置,如mysql、redis、mongo等

2.2、如何让配置文件生效

只需要在启动项目的时候增加参数 --spring.profiles.active=dev 就可以指定环境

在 IDEA 中,可以在 Environment variables 里填上 spring.profiles.active=dev 就可以了

Profile多环境配置以及结合Maven如何使用_第1张图片

如果是 SpringBoot 在 Active profiles 里填上 dev 也可以达到一样的效果

Profile多环境配置以及结合Maven如何使用_第2张图片

当然也可以在 application.yml 文件中设置 spring.profiles.active 参数

image-20230801112858671

三、结合Maven使用

而在 IDEA 中还有个更快速的方式,因为 maven 有一个关于 profile 的配置,而 IDEA 里有专门的 maven 窗口可以用来切换,怎么操作呢?首先在 pom.xml 文件里添加如下代码

<profiles>
	<profile>
		<id>devid>
		<activation>
			<activeByDefault>trueactiveByDefault>
		activation>
		<properties>
			<env>devenv>
		properties>
	profile>
	<profile>
		<id>testid>
		<properties>
			<env>testenv>
		properties>
	profile>
	<profile>
		<id>prodid>
		<properties>
			<env>prodenv>
		properties>
	profile>
profiles>

这里设置了默认是 dev,我这边自定义了一个 env 标签,你也可以按自己的需要去定义,这个标签有什么呢,刚才上面我们有说过可以在 application.yml 文件中设置 spring.profiles.active 参数,这时候我们可以把这个参数改成 @env@,具体如下:

Profile多环境配置以及结合Maven如何使用_第3张图片

之后就可以在 IDEA 里的 maven 窗口里勾选切换环境了,切换之后重新 import 就可以了

Profile多环境配置以及结合Maven如何使用_第4张图片

你可能感兴趣的:(Maven,IDEA,Spring,maven,java,springboot)