本文在 三.spring boot 集成 Knife4j 2.0.7 实现API 文档 基础上实现
在实现的工作中有:本地环境、测试环境、预发布环境、生产环境等,每个环境的数据库、缓存、mq等服务地址都不一样,每次都修改 application.yml 不严谨、也容易出错,下面就介绍怎么配置多环境。
1.多环境配置在 resources 添加多个环境的配置yml
application-dev.yml 开发环境:程序员本地开发环境
application-test.yml 测试环境:测试服务器、测试人员本地的环境使用
application-prod.yml 生产环境:正式服务器
基础信息配置application.yml文件中,比如数据库地址、缓存地址配置到对应的dev、test、prod中。
application.yml
# 当前项目maven激活环境,例如:dev/test/prod,对应pom.xml中profile设置值
spring:
profiles:
active: @profileActive@
application:
name: @project.artifactId@
#配置数据库连接
datasource:
druid:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
initial-size: 3
max-active: 50
min-idle: 5
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 30000
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filters: stat,wall,slf4j
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
knife4j:
enable: true
basic:
enable: true
username: admin
password: ldxdcxy
setting:
enableReloadCacheParameter: true
enableDynamicParameter: true
application-dev.yml、application-test.yml、application-prod.yml 根据项目真实情况设置
#端口设置
server:
port: 8081
#数据库连接设置
spring:
datasource:
druid:
url: jdbc:mysql://192.168.1.102:3306/db_spring_boot_demo?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: ldxdcxy1024
在pom.xml文件中添加 profile的 区分正式环境和测试环境的配置
dev true dev ${project.build.directory}/logs test false test /var/spring-boot-demo/logs prod false prod /var/spring-boot-demo/logs
在resources 添加 logback-spring.xml 日志配置文件,已写好注释
${CONSOLE_LOG_PATTERN} UTF-8 ${log.path}/${application.name}/${application.name}-debug.log ${LOG_PATTERN} UTF-8 ${log.path}/${application.name}/%d{yyyy-MM-dd}/${application.name}-debug.%i.log 50MB 500MB 7 debug ACCEPT DENY ${log.path}/${application.name}/${application.name}-info.log ${LOG_PATTERN} UTF-8 ${log.path}/${application.name}/%d{yyyy-MM-dd}/${application.name}-info.%i.log 50MB 500MB 7 info ACCEPT DENY ${log.path}/${application.name}/${application.name}-warn.log ${LOG_PATTERN} UTF-8 ${log.path}/${application.name}/%d{yyyy-MM-dd}/${application.name}-warn.%i.log 50MB 500MB 7 warn ACCEPT DENY ${log.path}/${application.name}/${application.name}-error.log ${LOG_PATTERN} UTF-8 ${log.path}/${application.name}/%d{yyyy-MM-dd}/${application.name}-error.%i.log 50MB 500MB 7 ERROR ACCEPT DENY
项目打包:idea 右边->maven->profile选择对应的环境->项目名称->lifecycle->package
电脑上安装maven了,可以通过mvn 命令进行打包,我idea的版本为2021.3,打包命令为:
mvn clean install "-Dmaven.test.skip=true" -Pprod
clear表示清除历史target "-Dmaven.test.skip=true "跳过测试, -Pprod 指定需要打包的环境
代码地址:项目多环境设置https://gitee.com/ldxdcxy/spring-boot-demo-profiles.git



