一 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: 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: 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中进行验证环境是否正确。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐