1. springboot版本升级3.x

2. mybatis plus版本升级3.x
3. dynamic mybatis plus版本升级3.x
4. redis版本升级3.x
5. reids实现配置优化
6. 替换swagger依赖(支持3.x)
7. 新增请求头工具类
8. 参数校验异常捕获优化
9. 拦截器注册为spring容器管理
10. 新增本地日志配置文件
This commit is contained in:
xiongf
2024-10-12 17:32:56 +08:00
parent cf4c78766b
commit 247e6f456a
16 changed files with 361 additions and 174 deletions

View File

@@ -10,37 +10,38 @@
# connection-test-query: SELECT 1
# datasource:
# master: #${SERVER_ADDRESS}
# url: jdbc:mysql://172.16.0.3:3307/xf-boot-base?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
# url: jdbc:mysql://9.9.9.9:3307/xf-boot-base?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
# username:
# password:
# driver-class-name: com.mysql.cj.jdbc.Driver
# slave:
# url: jdbc:mysql://172.16.0.3:3307/xf-boot-base?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
# url: jdbc:mysql://9.9.9.9:3307/xf-boot-base?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
# username:
# password:
# driver-class-name: com.mysql.cj.jdbc.Driver
# redis:
# port: 6379 #Redis服务器连接的端口
# host: 172.16.0.3 # Redis服务器的地址
# password: # Redis服务器连接密码(默认为空)
# timeout: 5000 # 连接超时时间(毫秒
# lettuce: #参考博客 https://blog.csdn.net/weixin_43944305/article/details/124322595
# pool:
# maxActive: 5000 #最大连接数
# maxIdle: 30 #连接池最大空闲连接数.
# minIdle: 5 #连接池最空闲连接数.
# max-wait: 2000 #连接池中获取连接时的最大等待时间
# time-between-eviction-runs: 60s #空闲对象逐出器线程的运行间隔时间.空闲连接线程释放周期时间.
# cluster:
# refresh:
# adaptive: true #拓扑动态感应即客户端能够根据 redis cluster 集群的变化,动态改变客户端的节点情况,完成故障转移。
# period: 60s #刷新redis集群状态周期时间
# data:
# redis:
# port: 6379 #Redis服务器连接的端口
# host: 9.9.9.9 # Redis服务器的地址
# password: # Redis服务器连接密码默认为空
# timeout: 5000 # 连接超时时间(毫秒)
# lettuce: #参考博客 https://blog.csdn.net/weixin_43944305/article/details/124322595
# pool:
# maxActive: 5000 #最大连接数
# maxIdle: 30 #连接池最空闲连接数.
# minIdle: 5 #连接池最小空闲连接数.
# max-wait: 2000 #从连接池中获取连接时的最大等待时间
# time-between-eviction-runs: 60s #空闲对象逐出器线程的运行间隔时间.空闲连接线程释放周期时间.
# cluster:
# refresh:
# adaptive: true #拓扑动态感应即客户端能够根据 redis cluster 集群的变化,动态改变客户端的节点情况,完成故障转移。
# period: 60s #刷新redis集群状态周期时间
#
#global:
# rsaPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC_F5UQC1QWsu3QsESQBz9M-GDA9Atm0qVSvwIsy568lyRLi-nq3VvvnmgrlL4yTbngFzyfb2Dn35cNCHsBvIaGuCY3_PpzPqMzVpxr2QlEkhEX9atnJQ1rWexS8QeZtPjpiIwoQrChTzXjD_sYUkDrqSykFplyivf0NSO2WqCBdwIDAQAB
# rsaPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL8XlRALVBay7dCwRJAHP0z4YMD0C2bSpVK_AizLnryXJEuL6erdW--eaCuUvjJNueAXPJ9vYOfflw0IewG8hoa4Jjf8-nM-ozNWnGvZCUSSERf1q2clDWtZ7FLxB5m0-OmIjChCsKFPNeMP-xhSQOupLKQWmXKK9_Q1I7ZaoIF3AgMBAAECgYBxTUA61Ry0oL7U_86HP2TO9G4ZuhmQi9EucMaPXOPvmgYRLRIzCbDbMKc_P-BN3zwYnG57cgSZNz9OoPqeGvP_oVTnkoEpVkCSV-JP2p_DK09LdbDqszJXMrxAkPmWGUw8IRMcTJT1xJJcgzFE6T0CmTo-Vk47AnmqfJD4U6o74QJBAPRjVUJKZnrMSnSqKPDL2ThgTo8h7-KFxl_Z-g724lTOFiCmBpi6nCWAcuacFRrrYqxF-r9c4zdIyR7AvLROql8CQQDIK_kRF52dVtwShciZhyeUBLoi0nWV9F8mMGt60NTEER9zPEgPsv2aVn8h97KMWOwmd2Da4EPm25QxOuaKQC_pAkBczcfXp5co9KElkmR_pHl1jiTm97U3qSM-zPDHc_tYxvXiKgoBP4QCPbfkWMsu8MoEr4Jb3vMt0EcHlZtTQTgzAkAfmNla-lhV4sUgY1_T5EK6GbjsED6hag6u74u3ukkrnexR-10ApWdkumydBwV3I_464DM4uZfeVCDjWIHVpuYpAkEA6QLPztGD4V8Q1PqTEeSF3i68CKPM8vO1_mCH2JD7qsqDQcIKkczj5rTg7hlOKwB9V6gSw4CbnOF6moTooRD-cQ
##redis
#redis
#redis:
# datasource:
# token:
@@ -65,16 +66,16 @@
# args:
# expireTime: 3600 #过期时间
# contentLengthRange: 2000 #大小限制
##oss:
## name: alioss
## endpoint: ll-oss-pre.lianlianlvyou.com
## accessKey:
## secretKey:
## bucketName:
## args:
## expireTime: 3600 #过期时间
## contentLengthRange: 2000 #大小限制
## redis分布式锁
#oss:
# name: alioss
# endpoint: ll-oss-pre.lianlianlvyou.com
# accessKey:
# secretKey:
# bucketName:
# args:
# expireTime: 3600 #过期时间
# contentLengthRange: 2000 #大小限制
# redis分布式锁
#redisson:
# enabled: true
# address: 'redis://192.168.10.113:6379'
@@ -120,8 +121,8 @@
# subscribeList:
# - queue: 'app-business'
# messageListener: commonChangeMessageListener
#
##应用可以默认使用的配置文件
#应用可以默认使用的配置文件
#global:
# testCofnig: "aaa"
# tokenSecret: '12435twefdsfsdt4tsdcqw43tregdsgd'

View File

@@ -19,22 +19,23 @@ spring:
username: ${MYSQL_NAME}
password: ${MYSQL_PWD}
driver-class-name: com.mysql.cj.jdbc.Driver
redis:
port: 6379 #Redis服务器连接的端口
host: ${SERVER_ADDRESS} # Redis服务器的地址
password: ${REDIS_PWD} # Redis服务器连接密码(默认为空)
timeout: 5000 # 连接超时时间(毫秒
lettuce: #参考博客 https://blog.csdn.net/weixin_43944305/article/details/124322595
pool:
maxActive: 5000 #最大连接数
maxIdle: 30 #连接池最大空闲连接数.
minIdle: 5 #连接池最空闲连接数.
max-wait: 2000 #连接池中获取连接时的最大等待时间
time-between-eviction-runs: 60s #空闲对象逐出器线程的运行间隔时间.空闲连接线程释放周期时间.
cluster:
refresh:
adaptive: true #拓扑动态感应即客户端能够根据 redis cluster 集群的变化,动态改变客户端的节点情况,完成故障转移。
period: 60s #刷新redis集群状态周期时间
data:
redis:
port: 6379 #Redis服务器连接的端口
host: ${SERVER_ADDRESS} # Redis服务器的地址
password: ${REDIS_PWD} # Redis服务器连接密码默认为空
timeout: 5000 # 连接超时时间(毫秒)
lettuce: #参考博客 https://blog.csdn.net/weixin_43944305/article/details/124322595
pool:
maxActive: 5000 #最大连接数
maxIdle: 30 #连接池最空闲连接数.
minIdle: 5 #连接池最小空闲连接数.
max-wait: 2000 #从连接池中获取连接时的最大等待时间
time-between-eviction-runs: 60s #空闲对象逐出器线程的运行间隔时间.空闲连接线程释放周期时间.
cluster:
refresh:
adaptive: true #拓扑动态感应即客户端能够根据 redis cluster 集群的变化,动态改变客户端的节点情况,完成故障转移。
period: 60s #刷新redis集群状态周期时间
global:
rsaPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC_F5UQC1QWsu3QsESQBz9M-GDA9Atm0qVSvwIsy568lyRLi-nq3VvvnmgrlL4yTbngFzyfb2Dn35cNCHsBvIaGuCY3_PpzPqMzVpxr2QlEkhEX9atnJQ1rWexS8QeZtPjpiIwoQrChTzXjD_sYUkDrqSykFplyivf0NSO2WqCBdwIDAQAB

View File

@@ -18,7 +18,16 @@ spring:
WRITE_DATES_AS_TIMESTAMPS: false
FAIL_ON_EMPTY_BEANS: false
springdoc:
api-docs:
path: /v3/api-docs # 自定义 API 文档路径
swagger-ui:
path: /swagger-ui.html # 自定义 Swagger UI 路径
enabled: true
info:
title: 文撩 API 文档
description: 这是文撩平台的 API 文档
version: v1.0
mybatis-plus:
configuration:

View File

@@ -5,14 +5,14 @@ spring:
cloud:
nacos:
config:
server-addr: 172.16.0.3:8848
server-addr: 9.9.9.9:8848
file-extension: yml
namespace: 7e913a24-bf7a-4628-9dcf-96ac79800c9f
namespace: 34f368d5-a6c6-4f57-a80a-5402de295695
group: DEFAULT_GROUP
username: nacos
password: nacos
username:
password:
discovery:
server-addr: 172.16.0.3:8848
namespace: 7e913a24-bf7a-4628-9dcf-96ac79800c9f
username: nacos
password: nacos
server-addr: 9.9.9.9:9
namespace: 34f368d5-a6c6-4f57-a80a-5402de295695
username:
password:

View File

@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false">
<contextName>logback</contextName>
<property name="log_home" value="logs"/>
<property name="log_pattern" value="[%date{yyyy-MM-dd HH:mm:ss.SSS}] %-5level %logger{96} - %msg%n"/>
<!--输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<encoder>
<Pattern>${log_pattern}</Pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--输出到本地-->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>./${log_home}/base-%d{yyyy-MM-dd}-info.%i.log</FileNamePattern>
<!-- 日志文件最大尺寸 -->
<maxFileSize>200MB</maxFileSize>
<!--日志文件保留天数-->
<MaxHistory>3</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
</appender>
<!--输出到本地-->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>./${log_home}/base-%d{yyyy-MM-dd}-error.%i.log</FileNamePattern>
<!-- 日志文件最大尺寸 -->
<maxFileSize>200MB</maxFileSize>
<!--日志文件保留天数-->
<MaxHistory>3</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>error</level>
</filter>
</appender>
<springProperty scope="logstash" name="logIps" source="logstash.ips"/>
<springProperty scope="logstash" name="appName" source="logstash.appName"/>
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!-- logstash tcp 服务器地址,可以配置多个地址 -->
<destination>${logIps}</destination>
<!-- 保持连接 -->
<keepAliveDuration>5 minutes</keepAliveDuration>
<!-- 连接超时等待时间 -->
<connectionTimeout>5 seconds</connectionTimeout>
<!-- 重连延迟,默认 30s -->
<reconnectionDelay>30 second</reconnectionDelay>
<!-- 等待策略需要测试和监控CPU找到最佳配置 -->
<!-- 文档: https://github.com/logfellow/logstash-logback-encoder#wait-strategy -->
<waitStrategyType>sleeping</waitStrategyType>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"host":"${HOSTNAME}", "app_name":"${appName}","plantVersion":"1"}</customFields>
</encoder>
</appender>
<springProfile name="dev">
<root level="info">
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
<!-- <appender-ref ref="logstash"/>-->
</root>
</springProfile>
<springProfile name="pre">
<root level="info">
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
<!-- <appender-ref ref="logstash"/>-->
</root>
</springProfile>
</configuration>