refactor(gear): 重构应用配置并优化代码

- 重构了 application-docker.yml 文件,使用环境变量替代硬编码的配置值
- 优化了 Redis、Mail、SMS 等配置,提高了灵活性和可维护性
-调整了数据源配置,支持动态数据源和更多配置选项
- 移除了 GearPurchasePlanDetailBo 类中未使用的 totalAmount 字段
- 优化了代码格式和注释,提高了代码可读性
This commit is contained in:
2025-09-04 13:35:00 +08:00
parent 4d7a7a1c83
commit 5c445b3bae
2 changed files with 96 additions and 173 deletions

View File

@@ -1,174 +1,108 @@
--- # 临时文件存储位置 避免临时文件被系统清理报错
spring.servlet.multipart.location: /ruoyi/server/temp
# --- 临时文件存储位置
spring.servlet.multipart.location: ${APP_TEMP_DIR:/ruoyi/server/temp}
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
url: http://localhost:9090/admin
instance:
service-host-type: IP
username: ruoyi
password: 123456
# --- 监控中心Spring Boot Admin Client
spring.boot:
admin:
client:
enabled: ${ADMIN_CLIENT_ENABLED:true}
url: ${ADMIN_SERVER_URL:http://admin:9090/admin}
instance:
service-host-type: IP
username: ${ADMIN_USERNAME:ruoyi}
password: ${ADMIN_PASSWORD:123456}
--- # xxl-job 配置
xxl.job:
# 执行器开关
enabled: false
# 调度中心地址:如调度中心集群部署存在多个地址则用逗号分隔。
admin-addresses: http://localhost:9100/xxl-job-admin
# 执行器通讯TOKEN非空时启用
access-token: xxl-job
executor:
# 执行器AppName执行器心跳注册分组依据为空则关闭自动注册
appname: xxl-job-executor
# 执行器端口号 执行器从9101开始往后写
port: 9101
# 执行器注册默认IP:PORT
address:
# 执行器IP默认自动获取IP
ip:
# 执行器运行日志文件存储磁盘路径
logpath: ./logs/xxl-job
# 执行器日志文件保存天数大于3生效
logretentiondays: 30
# --- xxl-job 配置
xxl:
job:
enabled: ${XXL_ENABLED:false}
admin-addresses: ${XXL_ADMIN_ADDR:http://xxl-job-admin:9100/xxl-job-admin}
access-token: ${XXL_ACCESS_TOKEN:xxl-job}
executor:
appname: ${XXL_APPNAME:xxl-job-executor}
port: ${XXL_PORT:9101}
address: ${XXL_ADDRESS:}
ip: ${XXL_IP:}
logpath: ${XXL_LOGPATH:./logs/xxl-job}
logretentiondays: ${XXL_LOG_RETENTION_DAYS:30}
--- # 数据源配置
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
# 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content
dynamic:
# 性能分析插件(有性能损耗 不建议生产环境使用)
p6spy: false
# 设置默认的数据源或者数据源组,默认值即为 master
primary: master
# 严格模式 匹配不到数据源则报错
strict: true
datasource:
# 主库数据源
master:
type: ${spring.datasource.type}
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://49.232.154.205:10080/gear?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
username: root
password: Fuande@666
# 从库数据源
slave:
lazy: true
type: ${spring.datasource.type}
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://49.232.154.205:10080/gear?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
username: root
password: Fuande@666
# oracle:
# type: ${spring.datasource.type}
# driverClassName: oracle.jdbc.OracleDriver
# url: jdbc:oracle:thin:@//localhost:1521/XE
# username: ROOT
# password: root
# hikari:
# connectionTestQuery: SELECT 1 FROM DUAL
# postgres:
# type: ${spring.datasource.type}
# driverClassName: org.postgresql.Driver
# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
# username: root
# password: root
# sqlserver:
# type: ${spring.datasource.type}
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true
# username: SA
# password: root
hikari:
# 最大连接池数量
maxPoolSize: 20
# 最小空闲线程数量
minIdle: 10
# 配置获取连接等待超时的时间
connectionTimeout: 30000
# 校验超时时间
validationTimeout: 5000
# 空闲连接存活最大时间默认10分钟
idleTimeout: 600000
# 此属性控制池中连接的最长生命周期值0表示无限生命周期默认30分钟
maxLifetime: 1800000
# 连接测试query配置检测连接是否有效
connectionTestQuery: SELECT 1
# 多久检查一次连接的活性
keepaliveTime: 30000
# --- 数据源(动态数据源 + Hikari
spring.datasource:
type: com.zaxxer.hikari.HikariDataSource
dynamic:
p6spy: ${DS_P6SPY:false}
primary: ${DS_PRIMARY:master}
strict: ${DS_STRICT:true}
datasource:
master:
type: ${spring.datasource.type}
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${DB_HOST:mysql}:${DB_PORT:3306}/${DB_NAME:gear}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=${DB_USE_SSL:false}&serverTimezone=${DB_TZ:Asia/Shanghai}&autoReconnect=true&rewriteBatchedStatements=true
username: ${DB_USER:root}
password: ${DB_PASS:root}
slave:
lazy: ${DS_SLAVE_LAZY:true}
type: ${spring.datasource.type}
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${DB_SLAVE_HOST:${DB_HOST:mysql}}:${DB_SLAVE_PORT:${DB_PORT:3306}}/${DB_SLAVE_NAME:${DB_NAME:gear}}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=${DB_USE_SSL:false}&serverTimezone=${DB_TZ:Asia/Shanghai}&autoReconnect=true&rewriteBatchedStatements=true
username: ${DB_SLAVE_USER:${DB_USER:root}}
password: ${DB_SLAVE_PASS:${DB_PASS:root}}
hikari:
maxPoolSize: ${HIKARI_MAX_POOL:20}
minIdle: ${HIKARI_MIN_IDLE:10}
connectionTimeout: ${HIKARI_CONN_TIMEOUT:30000}
validationTimeout: ${HIKARI_VALID_TIMEOUT:5000}
idleTimeout: ${HIKARI_IDLE_TIMEOUT:600000}
maxLifetime: ${HIKARI_MAX_LIFETIME:1800000}
connectionTestQuery: ${HIKARI_TEST_QUERY:SELECT 1}
keepaliveTime: ${HIKARI_KEEPALIVE:30000}
--- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉)
# --- Redis单机
spring:
redis:
# 地址
host: redis_gear
# 端口默认为6379
port: 6379
# 数据库索引
database: 0
# 密码(如没有密码请注释掉)
# password:
# 连接超时时间
timeout: 10s
# 是否开启ssl
ssl: false
host: ${REDIS_HOST:redis}
port: ${REDIS_PORT:6379}
database: ${REDIS_DB:0}
# password: ${REDIS_PASSWORD:} # 有密码再开启
timeout: ${REDIS_TIMEOUT:10s}
ssl: ${REDIS_SSL:false}
redisson:
# redis key前缀
keyPrefix:
# 线程池数量
threads: 16
# Netty线程池数量
nettyThreads: 32
# 单节点配置
keyPrefix: ${REDIS_KEY_PREFIX:}
threads: ${REDIS_THREADS:16}
nettyThreads: ${REDIS_NETTY_THREADS:32}
singleServerConfig:
# 客户端名称
clientName: ${ruoyi.name}
# 最小空闲连接数
connectionMinimumIdleSize: 32
# 连接池大小
connectionPoolSize: 64
# 连接空闲超时,单位:毫秒
idleConnectionTimeout: 10000
# 命令等待超时,单位:毫秒
timeout: 3000
# 发布和订阅连接池大小
subscriptionConnectionPoolSize: 50
clientName: ${APP_NAME:ruoyi}
connectionMinimumIdleSize: ${REDIS_MIN_IDLE:32}
connectionPoolSize: ${REDIS_POOL_SIZE:64}
idleConnectionTimeout: ${REDIS_IDLE_TIMEOUT:10000}
timeout: ${REDIS_CMD_TIMEOUT:3000}
subscriptionConnectionPoolSize: ${REDIS_SUB_POOL:50}
--- # mail 邮件发送
# --- Mail
mail:
enabled: false
host: smtp.163.com
port: 465
# 是否需要用户名密码验证
auth: true
# 发送方遵循RFC-822标准
from: xxx@163.com
# 用户名注意如果使用foxmail邮箱此处user为qq号
user: xxx@163.com
# 密码注意某些邮箱需要为SMTP服务单独设置密码详情查看相关帮助
pass: xxxxxxxxxx
# 使用 STARTTLS安全连接STARTTLS是对纯文本通信协议的扩展。
starttlsEnable: true
# 使用SSL安全连接
sslEnable: true
# SMTP超时时长单位毫秒缺省值不超时
timeout: 0
# Socket连接超时值单位毫秒缺省值不超时
connectionTimeout: 0
enabled: ${MAIL_ENABLED:false}
host: ${MAIL_HOST:smtp.163.com}
port: ${MAIL_PORT:465}
auth: ${MAIL_AUTH:true}
from: ${MAIL_FROM:xxx@163.com}
user: ${MAIL_USER:xxx@163.com}
pass: ${MAIL_PASS:xxxxxxxxxx}
starttlsEnable: ${MAIL_STARTTLS:true}
sslEnable: ${MAIL_SSL:true}
timeout: ${MAIL_TIMEOUT:0}
connectionTimeout: ${MAIL_CONN_TIMEOUT:0}
--- # sms 短信
# --- SMS
sms:
enabled: false
# 阿里云 dysmsapi.aliyuncs.com
# 腾讯云 sms.tencentcloudapi.com
endpoint: "dysmsapi.aliyuncs.com"
accessKeyId: xxxxxxx
accessKeySecret: xxxxxx
signName: 测试
# 腾讯专用
sdkAppId:
enabled: ${SMS_ENABLED:false}
endpoint: ${SMS_ENDPOINT:dysmsapi.aliyuncs.com}
accessKeyId: ${SMS_AK:xxxxxxx}
accessKeySecret: ${SMS_SK:xxxxxx}
signName: ${SMS_SIGN:测试}
# --- 其他常用可调
server:
port: ${SERVER_PORT:8080}
tomcat:
max-threads: ${TOMCAT_MAX_THREADS:200}