mirror of
https://github.com/RemainderTime/spring-boot-base-demo.git
synced 2026-05-11 21:17:33 +08:00
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:
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
88
src/main/resources/logback-spring-local.xml
Normal file
88
src/main/resources/logback-spring-local.xml
Normal 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>
|
||||
Reference in New Issue
Block a user