一 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: dev
三 创建不同的配置文件
现在profile环境有dev和prd。
需要创建文件 application-dev.yml、application-prd.yml和日志配置文件logback-dev.xml、logback-prd.xml
springboot的配置我需要分开的有mysql、redis还有端口。
所有application-dev.yml如下:
server:port: 8092spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedruid:username: rootpassword: 1234567890url: jdbc:mysql://localhost:3306/fake_tjise?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driver# 初始化时建立物理连接的个数initial-size: 5# 最大连接池数量max-active: 30# 最小连接池数量min-idle: 5time-between-eviction-runs-millis: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒# 连接保持空闲而不被驱逐的最小时间min-evictable-idle-time-millis: 300000# 获取连接时最大等待时间,单位毫秒max-wait: 60000# 用来检测连接是否有效的sql,要求是一个查询语句validation-query: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsewebStatFilter:enabled: truestatViewServlet:enabled: true# 设置白名单,不填则允许所有访问allow:url-pattern: /druid/*# 控制台管理用户名和密码login-username: adminlogin-password: 123456789filter:stat:enabled: true# 慢SQL记录log-slow-sql: trueslow-sql-millis: 1000merge-sql: truewall:config:multi-statement-allow: truejackson:time-zone: GMT+8date-format: yyyy-MM-dd HH:mm:ssthymeleaf:cache: falseredis:host: 127.0.0.1port: 6379swagger:enable: truemybatis-plus:mapper-locations: classpath*:/mapper/api/*.xmlglobal-config:db-config:id-type: autologic-delete-value: 0logic-not-delete-value: 1logging:level:.codingce: info
至于application-prd.yml 根据自己的环境进行更换配置。
日志配置文件同理。
四 打包
1 打包的时候只需要进行如下图勾选 dev环境或者prd生产环境。
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中进行验证环境是否正确。