一 pom.xml配置如下:

<profiles>
<profile>
<id>dev</id>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prd</id>
<properties>
<spring.profiles.active>prd</spring.profiles.active>
</properties>
</profile>
</profiles>

二 配置application.yml

application.yml中先配置一些公共的部分。然后配置需要分开的部分。

spring:
profiles:
active:

三 创建不同的配置文件

现在profile环境有dev和prd。
需要创建文件 application-dev.yml、application-prd.yml和日志配置文件logback-dev.xml、logback-prd.xml
springboot的配置我需要分开的有mysql、redis还有端口。
所有application-dev.yml如下:

server:
port: 8092

spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
username: root
password: 1234567890
url: jdbc:mysql://localhost:3306/fake_tjise?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
# 初始化时建立物理连接的个数
initial-size: 5
# 最大连接池数量
max-active: 30
# 最小连接池数量
min-idle: 5
time-between-eviction-runs-millis: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
# 连接保持空闲而不被驱逐的最小时间
min-evictable-idle-time-millis: 300000
# 获取连接时最大等待时间,单位毫秒
max-wait: 60000
# 用来检测连接是否有效的sql,要求是一个查询语句
validation-query: SELECT 1 FROM DUAL

testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: admin
login-password: 123456789
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true


jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss

thymeleaf:
cache: false

redis:
host: 127.0.0.1
port: 6379

swagger:
enable: true

mybatis-plus:
mapper-locations: classpath*:/mapper/api/*.xml
global-config:
db-config:
id-type: auto
logic-delete-value: 0
logic-not-delete-value: 1

logging:
level:
cn.com.codingce:

至于application-prd.yml 根据自己的环境进行更换配置。
日志配置文件同理。

四 打包

1 打包的时候只需要进行如下图勾选 dev环境或者prd生产环境。

Spring Boot配置@spring.profiles.active配置_spring

2 勾选好环境 点击lifecycle中的package或者install进行打包。
或者使用命令打包: mvn clean package -P prd; 指定环境进行打包(如果不指定,打包的还是pom.xml中的默认的环境dev)。

注意:切换环境后,本地启动的环境是成功切换了的。但是打包并没有。
在我成功切换环境prd后,仍然使用命令mvn clean package打包,本来我以为这样也可以打包成prd环境的,但结果是pom.xml中默认的环境dev(activeByDefault = true),所以需要在后面命令加参数 mvn clean package -P prd进行打包。

验证:打包完成后可去target/classes/application.yml中进行验证环境是否正确。