【新增】运行日志
This commit is contained in:
@@ -0,0 +1,34 @@
|
|||||||
|
package com.corewing.app.common.aspect;
|
||||||
|
|
||||||
|
import ch.qos.logback.classic.pattern.ClassicConverter;
|
||||||
|
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||||
|
import com.corewing.app.util.CommonTraceIdUtil;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class CustomTraceIdConverter extends ClassicConverter {
|
||||||
|
|
||||||
|
// 使用常量避免重复创建字符串
|
||||||
|
private static final String LEFT_BRACKET = "[";
|
||||||
|
private static final String RIGHT_BRACKET = "]";
|
||||||
|
|
||||||
|
// 缓存StringBuilder以减少对象创建
|
||||||
|
private static final ThreadLocal<StringBuilder> bufferHolder =
|
||||||
|
ThreadLocal.withInitial(() -> new StringBuilder(64));
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String convert(ILoggingEvent event) {
|
||||||
|
StringBuilder buffer = bufferHolder.get();
|
||||||
|
buffer.setLength(0);
|
||||||
|
String traceId = CommonTraceIdUtil.getTraceId();
|
||||||
|
|
||||||
|
buffer.append(LEFT_BRACKET);
|
||||||
|
if (traceId != null && !traceId.isEmpty()) {
|
||||||
|
buffer.append(traceId);
|
||||||
|
} else {
|
||||||
|
buffer.append(event.getThreadName());
|
||||||
|
}
|
||||||
|
buffer.append(RIGHT_BRACKET);
|
||||||
|
return buffer.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
42
src/main/java/com/corewing/app/util/CommonTraceIdUtil.java
Normal file
42
src/main/java/com/corewing/app/util/CommonTraceIdUtil.java
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
package com.corewing.app.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CommonTraceIdUtil {
|
||||||
|
|
||||||
|
public static final String TRACE_ID_STRING = "traceId";
|
||||||
|
|
||||||
|
private static final InheritableThreadLocal<String> TRACE_ID = new InheritableThreadLocal<>();
|
||||||
|
|
||||||
|
public static String generateTraceId(HttpServletRequest request) {
|
||||||
|
String header = request.getHeader(TRACE_ID_STRING);
|
||||||
|
if (header != null) {
|
||||||
|
return header;
|
||||||
|
}
|
||||||
|
return UUID.randomUUID().toString().replace(StrUtil.DASHED, StrUtil.EMPTY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getTraceId() {
|
||||||
|
return TRACE_ID.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getTraceId(HttpServletRequest request) {
|
||||||
|
String traceId = getTraceId();
|
||||||
|
if (traceId == null) {
|
||||||
|
traceId = generateTraceId(request);
|
||||||
|
setTraceId(traceId);
|
||||||
|
}
|
||||||
|
return traceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setTraceId(String traceId) {
|
||||||
|
TRACE_ID.set(traceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void clear() {
|
||||||
|
TRACE_ID.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
107
src/main/resources/application-local.properties
Normal file
107
src/main/resources/application-local.properties
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
# 数据源配置
|
||||||
|
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
||||||
|
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
||||||
|
spring.datasource.url=jdbc:mysql://120.24.204.180:3306/app?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
|
||||||
|
spring.datasource.username=app
|
||||||
|
spring.datasource.password=AB636NGhhH2cC5A5
|
||||||
|
|
||||||
|
# Druid 连接池配置
|
||||||
|
spring.datasource.druid.initial-size=5
|
||||||
|
spring.datasource.druid.min-idle=5
|
||||||
|
spring.datasource.druid.max-active=20
|
||||||
|
spring.datasource.druid.max-wait=60000
|
||||||
|
spring.datasource.druid.test-while-idle=true
|
||||||
|
spring.datasource.druid.test-on-borrow=false
|
||||||
|
spring.datasource.druid.test-on-return=false
|
||||||
|
spring.datasource.druid.time-between-eviction-runs-millis=60000
|
||||||
|
spring.datasource.druid.min-evictable-idle-time-millis=300000
|
||||||
|
spring.datasource.druid.validation-query=SELECT 1
|
||||||
|
spring.datasource.druid.pool-prepared-statements=true
|
||||||
|
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
|
||||||
|
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
|
||||||
|
spring.datasource.druid.filters=stat,wall
|
||||||
|
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
|
||||||
|
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
|
||||||
|
|
||||||
|
# MyBatis-Plus 配置
|
||||||
|
mybatis-plus.mapper-locations=classpath*:/mapper/**/*.xml
|
||||||
|
mybatis-plus.type-aliases-package=com.corewing.app.entity
|
||||||
|
mybatis-plus.configuration.map-underscore-to-camel-case=true
|
||||||
|
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
mybatis-plus.global-config.db-config.id-type=ASSIGN_ID
|
||||||
|
mybatis-plus.global-config.db-config.table-prefix=
|
||||||
|
# ========== 逻辑删除核心配置 ==========
|
||||||
|
# 1. 自定义逻辑删除字段名(替换为你的字段,如 is_delete、del_flag 等)
|
||||||
|
mybatis-plus.global-config.db-config.logic-delete-field=del_flag
|
||||||
|
# 2. 逻辑未删除值(替换为你的业务未删除值,如 0、false、N 等)
|
||||||
|
mybatis-plus.global-config.db-config.logic-not-delete-value=NOT_DELETE
|
||||||
|
# 3. 逻辑已删除值(替换为你的业务已删除值,如 1、true、Y 等)
|
||||||
|
mybatis-plus.global-config.db-config.logic-delete-value=DELETE
|
||||||
|
|
||||||
|
# Redis 配置
|
||||||
|
spring.redis.host=localhost
|
||||||
|
spring.redis.port=6379
|
||||||
|
spring.redis.password=
|
||||||
|
spring.redis.database=0
|
||||||
|
spring.redis.timeout=3000
|
||||||
|
spring.redis.lettuce.pool.max-active=8
|
||||||
|
spring.redis.lettuce.pool.max-idle=8
|
||||||
|
spring.redis.lettuce.pool.min-idle=0
|
||||||
|
spring.redis.lettuce.pool.max-wait=-1ms
|
||||||
|
|
||||||
|
# MongoDB 配置
|
||||||
|
#spring.data.mongodb.host=120.24.204.180
|
||||||
|
#spring.data.mongodb.database=app
|
||||||
|
#spring.data.mongodb.port=27017
|
||||||
|
|
||||||
|
# Sa-Token 配置
|
||||||
|
sa-token.token-name=Authorization
|
||||||
|
sa-token.timeout=2592000
|
||||||
|
sa-token.active-timeout=-1
|
||||||
|
sa-token.is-concurrent=true
|
||||||
|
sa-token.is-share=true
|
||||||
|
sa-token.token-style=uuid
|
||||||
|
sa-token.is-log=false
|
||||||
|
|
||||||
|
# 短信宝配置
|
||||||
|
# 请前往 https://www.smsbao.com/ 注册账号并获取用户名和密码
|
||||||
|
smsbao.username=corewing
|
||||||
|
smsbao.password=755dc3ac40c94d319cf6e314f24dc659
|
||||||
|
|
||||||
|
# 邮件配置
|
||||||
|
# SMTP 服务器地址
|
||||||
|
spring.mail.host=smtp.em.dingtalk.com
|
||||||
|
# SMTP 服务器端口(465 为 SSL 加密端口)
|
||||||
|
spring.mail.port=465
|
||||||
|
# 发件人邮箱
|
||||||
|
spring.mail.username=dev@corewing.com
|
||||||
|
# 邮箱授权码(不是邮箱密码!需要在邮箱设置中开启 SMTP 服务并获取授权码)
|
||||||
|
spring.mail.password=t035gngwYl0xgvZF
|
||||||
|
# 编码格式
|
||||||
|
spring.mail.default-encoding=UTF-8
|
||||||
|
# 其他配置
|
||||||
|
spring.mail.properties.mail.smtp.auth=true
|
||||||
|
# 465 端口使用 SSL 加密,需要启用 SSL
|
||||||
|
spring.mail.properties.mail.smtp.ssl.enable=true
|
||||||
|
spring.mail.properties.mail.smtp.ssl.required=true
|
||||||
|
# SSL Socket Factory 配置
|
||||||
|
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
|
||||||
|
spring.mail.properties.mail.smtp.socketFactory.port=465
|
||||||
|
spring.mail.properties.mail.smtp.socketFactory.fallback=false
|
||||||
|
|
||||||
|
# 钉钉机器人配置
|
||||||
|
# 请前往钉钉群设置 -> 智能群助手 -> 添加机器人 -> 自定义机器人,获取 Webhook 地址和密钥
|
||||||
|
dingtalk.webhook=https://oapi.dingtalk.com/robot/send?access_token=7eed4b3483303c9ec71ef37a08c347bb597fd4c64211a96a8f55f72405ff6444
|
||||||
|
# 如果使用加签安全设置,请填写密钥(secret)
|
||||||
|
dingtalk.secret=SEC0f2b835f28139905e3c0b5be979b215df1735f1154f36514aafbae8708014148
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ===================== Knife4j 核心增强配置 =====================
|
||||||
|
# 启用Knife4j增强模式
|
||||||
|
knife4j.enable=true
|
||||||
|
knife4j.setting.language=zh_cn
|
||||||
|
knife4j.basic.enable=true
|
||||||
|
knife4j.basic.username=corewing
|
||||||
|
knife4j.basic.password=Aaa123..
|
||||||
107
src/main/resources/application-prod.properties
Normal file
107
src/main/resources/application-prod.properties
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
# 数据源配置
|
||||||
|
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
||||||
|
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
||||||
|
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/app?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
|
||||||
|
spring.datasource.username=app
|
||||||
|
spring.datasource.password=AB636NGhhH2cC5A5
|
||||||
|
|
||||||
|
# Druid 连接池配置
|
||||||
|
spring.datasource.druid.initial-size=5
|
||||||
|
spring.datasource.druid.min-idle=5
|
||||||
|
spring.datasource.druid.max-active=20
|
||||||
|
spring.datasource.druid.max-wait=60000
|
||||||
|
spring.datasource.druid.test-while-idle=true
|
||||||
|
spring.datasource.druid.test-on-borrow=false
|
||||||
|
spring.datasource.druid.test-on-return=false
|
||||||
|
spring.datasource.druid.time-between-eviction-runs-millis=60000
|
||||||
|
spring.datasource.druid.min-evictable-idle-time-millis=300000
|
||||||
|
spring.datasource.druid.validation-query=SELECT 1
|
||||||
|
spring.datasource.druid.pool-prepared-statements=true
|
||||||
|
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
|
||||||
|
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
|
||||||
|
spring.datasource.druid.filters=stat,wall
|
||||||
|
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
|
||||||
|
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
|
||||||
|
|
||||||
|
# MyBatis-Plus 配置
|
||||||
|
mybatis-plus.mapper-locations=classpath*:/mapper/**/*.xml
|
||||||
|
mybatis-plus.type-aliases-package=com.corewing.app.entity
|
||||||
|
mybatis-plus.configuration.map-underscore-to-camel-case=true
|
||||||
|
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
mybatis-plus.global-config.db-config.id-type=ASSIGN_ID
|
||||||
|
mybatis-plus.global-config.db-config.table-prefix=
|
||||||
|
# ========== 逻辑删除核心配置 ==========
|
||||||
|
# 1. 自定义逻辑删除字段名(替换为你的字段,如 is_delete、del_flag 等)
|
||||||
|
mybatis-plus.global-config.db-config.logic-delete-field=del_flag
|
||||||
|
# 2. 逻辑未删除值(替换为你的业务未删除值,如 0、false、N 等)
|
||||||
|
mybatis-plus.global-config.db-config.logic-not-delete-value=NOT_DELETE
|
||||||
|
# 3. 逻辑已删除值(替换为你的业务已删除值,如 1、true、Y 等)
|
||||||
|
mybatis-plus.global-config.db-config.logic-delete-value=DELETE
|
||||||
|
|
||||||
|
# Redis 配置
|
||||||
|
spring.redis.host=localhost
|
||||||
|
spring.redis.port=6379
|
||||||
|
spring.redis.password=
|
||||||
|
spring.redis.database=0
|
||||||
|
spring.redis.timeout=3000
|
||||||
|
spring.redis.lettuce.pool.max-active=8
|
||||||
|
spring.redis.lettuce.pool.max-idle=8
|
||||||
|
spring.redis.lettuce.pool.min-idle=0
|
||||||
|
spring.redis.lettuce.pool.max-wait=-1ms
|
||||||
|
|
||||||
|
# MongoDB 配置
|
||||||
|
#spring.data.mongodb.host=120.24.204.180
|
||||||
|
#spring.data.mongodb.database=app
|
||||||
|
#spring.data.mongodb.port=27017
|
||||||
|
|
||||||
|
# Sa-Token 配置
|
||||||
|
sa-token.token-name=Authorization
|
||||||
|
sa-token.timeout=2592000
|
||||||
|
sa-token.active-timeout=-1
|
||||||
|
sa-token.is-concurrent=true
|
||||||
|
sa-token.is-share=true
|
||||||
|
sa-token.token-style=uuid
|
||||||
|
sa-token.is-log=false
|
||||||
|
|
||||||
|
# 短信宝配置
|
||||||
|
# 请前往 https://www.smsbao.com/ 注册账号并获取用户名和密码
|
||||||
|
smsbao.username=corewing
|
||||||
|
smsbao.password=755dc3ac40c94d319cf6e314f24dc659
|
||||||
|
|
||||||
|
# 邮件配置
|
||||||
|
# SMTP 服务器地址
|
||||||
|
spring.mail.host=smtp.em.dingtalk.com
|
||||||
|
# SMTP 服务器端口(465 为 SSL 加密端口)
|
||||||
|
spring.mail.port=465
|
||||||
|
# 发件人邮箱
|
||||||
|
spring.mail.username=dev@corewing.com
|
||||||
|
# 邮箱授权码(不是邮箱密码!需要在邮箱设置中开启 SMTP 服务并获取授权码)
|
||||||
|
spring.mail.password=t035gngwYl0xgvZF
|
||||||
|
# 编码格式
|
||||||
|
spring.mail.default-encoding=UTF-8
|
||||||
|
# 其他配置
|
||||||
|
spring.mail.properties.mail.smtp.auth=true
|
||||||
|
# 465 端口使用 SSL 加密,需要启用 SSL
|
||||||
|
spring.mail.properties.mail.smtp.ssl.enable=true
|
||||||
|
spring.mail.properties.mail.smtp.ssl.required=true
|
||||||
|
# SSL Socket Factory 配置
|
||||||
|
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
|
||||||
|
spring.mail.properties.mail.smtp.socketFactory.port=465
|
||||||
|
spring.mail.properties.mail.smtp.socketFactory.fallback=false
|
||||||
|
|
||||||
|
# 钉钉机器人配置
|
||||||
|
# 请前往钉钉群设置 -> 智能群助手 -> 添加机器人 -> 自定义机器人,获取 Webhook 地址和密钥
|
||||||
|
dingtalk.webhook=https://oapi.dingtalk.com/robot/send?access_token=7eed4b3483303c9ec71ef37a08c347bb597fd4c64211a96a8f55f72405ff6444
|
||||||
|
# 如果使用加签安全设置,请填写密钥(secret)
|
||||||
|
dingtalk.secret=SEC0f2b835f28139905e3c0b5be979b215df1735f1154f36514aafbae8708014148
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ===================== Knife4j 核心增强配置 =====================
|
||||||
|
# 启用Knife4j增强模式
|
||||||
|
knife4j.enable=true
|
||||||
|
knife4j.setting.language=zh_cn
|
||||||
|
knife4j.basic.enable=true
|
||||||
|
knife4j.basic.username=corewing
|
||||||
|
knife4j.basic.password=Aaa123..
|
||||||
107
src/main/resources/application-test.properties
Normal file
107
src/main/resources/application-test.properties
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
# 数据源配置
|
||||||
|
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
||||||
|
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
||||||
|
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/app?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
|
||||||
|
spring.datasource.username=root
|
||||||
|
spring.datasource.password=123456
|
||||||
|
|
||||||
|
# Druid 连接池配置
|
||||||
|
spring.datasource.druid.initial-size=5
|
||||||
|
spring.datasource.druid.min-idle=5
|
||||||
|
spring.datasource.druid.max-active=20
|
||||||
|
spring.datasource.druid.max-wait=60000
|
||||||
|
spring.datasource.druid.test-while-idle=true
|
||||||
|
spring.datasource.druid.test-on-borrow=false
|
||||||
|
spring.datasource.druid.test-on-return=false
|
||||||
|
spring.datasource.druid.time-between-eviction-runs-millis=60000
|
||||||
|
spring.datasource.druid.min-evictable-idle-time-millis=300000
|
||||||
|
spring.datasource.druid.validation-query=SELECT 1
|
||||||
|
spring.datasource.druid.pool-prepared-statements=true
|
||||||
|
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
|
||||||
|
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
|
||||||
|
spring.datasource.druid.filters=stat,wall
|
||||||
|
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
|
||||||
|
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
|
||||||
|
|
||||||
|
# MyBatis-Plus 配置
|
||||||
|
mybatis-plus.mapper-locations=classpath*:/mapper/**/*.xml
|
||||||
|
mybatis-plus.type-aliases-package=com.corewing.app.entity
|
||||||
|
mybatis-plus.configuration.map-underscore-to-camel-case=true
|
||||||
|
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
mybatis-plus.global-config.db-config.id-type=ASSIGN_ID
|
||||||
|
mybatis-plus.global-config.db-config.table-prefix=
|
||||||
|
# ========== 逻辑删除核心配置 ==========
|
||||||
|
# 1. 自定义逻辑删除字段名(替换为你的字段,如 is_delete、del_flag 等)
|
||||||
|
mybatis-plus.global-config.db-config.logic-delete-field=del_flag
|
||||||
|
# 2. 逻辑未删除值(替换为你的业务未删除值,如 0、false、N 等)
|
||||||
|
mybatis-plus.global-config.db-config.logic-not-delete-value=NOT_DELETE
|
||||||
|
# 3. 逻辑已删除值(替换为你的业务已删除值,如 1、true、Y 等)
|
||||||
|
mybatis-plus.global-config.db-config.logic-delete-value=DELETE
|
||||||
|
|
||||||
|
# Redis 配置
|
||||||
|
spring.redis.host=localhost
|
||||||
|
spring.redis.port=6379
|
||||||
|
spring.redis.password=
|
||||||
|
spring.redis.database=0
|
||||||
|
spring.redis.timeout=3000
|
||||||
|
spring.redis.lettuce.pool.max-active=8
|
||||||
|
spring.redis.lettuce.pool.max-idle=8
|
||||||
|
spring.redis.lettuce.pool.min-idle=0
|
||||||
|
spring.redis.lettuce.pool.max-wait=-1ms
|
||||||
|
|
||||||
|
# MongoDB 配置
|
||||||
|
#spring.data.mongodb.host=120.24.204.180
|
||||||
|
#spring.data.mongodb.database=app
|
||||||
|
#spring.data.mongodb.port=27017
|
||||||
|
|
||||||
|
# Sa-Token 配置
|
||||||
|
sa-token.token-name=Authorization
|
||||||
|
sa-token.timeout=2592000
|
||||||
|
sa-token.active-timeout=-1
|
||||||
|
sa-token.is-concurrent=true
|
||||||
|
sa-token.is-share=true
|
||||||
|
sa-token.token-style=uuid
|
||||||
|
sa-token.is-log=false
|
||||||
|
|
||||||
|
# 短信宝配置
|
||||||
|
# 请前往 https://www.smsbao.com/ 注册账号并获取用户名和密码
|
||||||
|
smsbao.username=corewing
|
||||||
|
smsbao.password=755dc3ac40c94d319cf6e314f24dc659
|
||||||
|
|
||||||
|
# 邮件配置
|
||||||
|
# SMTP 服务器地址
|
||||||
|
spring.mail.host=smtp.em.dingtalk.com
|
||||||
|
# SMTP 服务器端口(465 为 SSL 加密端口)
|
||||||
|
spring.mail.port=465
|
||||||
|
# 发件人邮箱
|
||||||
|
spring.mail.username=dev@corewing.com
|
||||||
|
# 邮箱授权码(不是邮箱密码!需要在邮箱设置中开启 SMTP 服务并获取授权码)
|
||||||
|
spring.mail.password=t035gngwYl0xgvZF
|
||||||
|
# 编码格式
|
||||||
|
spring.mail.default-encoding=UTF-8
|
||||||
|
# 其他配置
|
||||||
|
spring.mail.properties.mail.smtp.auth=true
|
||||||
|
# 465 端口使用 SSL 加密,需要启用 SSL
|
||||||
|
spring.mail.properties.mail.smtp.ssl.enable=true
|
||||||
|
spring.mail.properties.mail.smtp.ssl.required=true
|
||||||
|
# SSL Socket Factory 配置
|
||||||
|
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
|
||||||
|
spring.mail.properties.mail.smtp.socketFactory.port=465
|
||||||
|
spring.mail.properties.mail.smtp.socketFactory.fallback=false
|
||||||
|
|
||||||
|
# 钉钉机器人配置
|
||||||
|
# 请前往钉钉群设置 -> 智能群助手 -> 添加机器人 -> 自定义机器人,获取 Webhook 地址和密钥
|
||||||
|
dingtalk.webhook=https://oapi.dingtalk.com/robot/send?access_token=7eed4b3483303c9ec71ef37a08c347bb597fd4c64211a96a8f55f72405ff6444
|
||||||
|
# 如果使用加签安全设置,请填写密钥(secret)
|
||||||
|
dingtalk.secret=SEC0f2b835f28139905e3c0b5be979b215df1735f1154f36514aafbae8708014148
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ===================== Knife4j 核心增强配置 =====================
|
||||||
|
# 启用Knife4j增强模式
|
||||||
|
knife4j.enable=true
|
||||||
|
knife4j.setting.language=zh_cn
|
||||||
|
knife4j.basic.enable=true
|
||||||
|
knife4j.basic.username=corewing
|
||||||
|
knife4j.basic.password=Aaa123..
|
||||||
@@ -1,114 +1,15 @@
|
|||||||
|
|
||||||
|
# spring profiles configuration
|
||||||
|
#########################################
|
||||||
|
#spring.profiles.active=local
|
||||||
|
spring.profiles.active=test
|
||||||
|
#spring.profiles.active=prod
|
||||||
|
#########################################
|
||||||
|
|
||||||
# 应用服务 WEB 访问端口
|
# 应用服务 WEB 访问端口
|
||||||
server.port=8080
|
server.port=8080
|
||||||
|
|
||||||
# 单文件最大大小(例如:10MB,支持单位:B, KB, MB, GB)
|
# 单文件最大大小(例如:10MB,支持单位:B, KB, MB, GB)
|
||||||
spring.servlet.multipart.max-file-size=100MB
|
spring.servlet.multipart.max-file-size=100MB
|
||||||
# 一次请求中所有文件的总大小(例如:50MB)
|
# 一次请求中所有文件的总大小(例如:50MB)
|
||||||
spring.servlet.multipart.max-request-size=100MB
|
spring.servlet.multipart.max-request-size=100MB
|
||||||
|
|
||||||
# 数据源配置
|
|
||||||
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
|
||||||
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
|
||||||
spring.datasource.url=jdbc:mysql://120.24.204.180:3306/app?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
|
|
||||||
spring.datasource.username=app
|
|
||||||
spring.datasource.password=AB636NGhhH2cC5A5
|
|
||||||
|
|
||||||
# Druid 连接池配置
|
|
||||||
spring.datasource.druid.initial-size=5
|
|
||||||
spring.datasource.druid.min-idle=5
|
|
||||||
spring.datasource.druid.max-active=20
|
|
||||||
spring.datasource.druid.max-wait=60000
|
|
||||||
spring.datasource.druid.test-while-idle=true
|
|
||||||
spring.datasource.druid.test-on-borrow=false
|
|
||||||
spring.datasource.druid.test-on-return=false
|
|
||||||
spring.datasource.druid.time-between-eviction-runs-millis=60000
|
|
||||||
spring.datasource.druid.min-evictable-idle-time-millis=300000
|
|
||||||
spring.datasource.druid.validation-query=SELECT 1
|
|
||||||
spring.datasource.druid.pool-prepared-statements=true
|
|
||||||
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
|
|
||||||
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
|
|
||||||
spring.datasource.druid.filters=stat,wall
|
|
||||||
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
|
|
||||||
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
|
|
||||||
|
|
||||||
# MyBatis-Plus 配置
|
|
||||||
mybatis-plus.mapper-locations=classpath*:/mapper/**/*.xml
|
|
||||||
mybatis-plus.type-aliases-package=com.corewing.app.entity
|
|
||||||
mybatis-plus.configuration.map-underscore-to-camel-case=true
|
|
||||||
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
|
|
||||||
mybatis-plus.global-config.db-config.id-type=ASSIGN_ID
|
|
||||||
mybatis-plus.global-config.db-config.table-prefix=
|
|
||||||
# ========== 逻辑删除核心配置 ==========
|
|
||||||
# 1. 自定义逻辑删除字段名(替换为你的字段,如 is_delete、del_flag 等)
|
|
||||||
mybatis-plus.global-config.db-config.logic-delete-field=del_flag
|
|
||||||
# 2. 逻辑未删除值(替换为你的业务未删除值,如 0、false、N 等)
|
|
||||||
mybatis-plus.global-config.db-config.logic-not-delete-value=NOT_DELETE
|
|
||||||
# 3. 逻辑已删除值(替换为你的业务已删除值,如 1、true、Y 等)
|
|
||||||
mybatis-plus.global-config.db-config.logic-delete-value=DELETE
|
|
||||||
|
|
||||||
# Redis 配置
|
|
||||||
spring.redis.host=localhost
|
|
||||||
spring.redis.port=6379
|
|
||||||
spring.redis.password=
|
|
||||||
spring.redis.database=0
|
|
||||||
spring.redis.timeout=3000
|
|
||||||
spring.redis.lettuce.pool.max-active=8
|
|
||||||
spring.redis.lettuce.pool.max-idle=8
|
|
||||||
spring.redis.lettuce.pool.min-idle=0
|
|
||||||
spring.redis.lettuce.pool.max-wait=-1ms
|
|
||||||
|
|
||||||
# MongoDB 配置
|
|
||||||
#spring.data.mongodb.host=120.24.204.180
|
|
||||||
#spring.data.mongodb.database=app
|
|
||||||
#spring.data.mongodb.port=27017
|
|
||||||
|
|
||||||
# Sa-Token 配置
|
|
||||||
sa-token.token-name=Authorization
|
|
||||||
sa-token.timeout=2592000
|
|
||||||
sa-token.active-timeout=-1
|
|
||||||
sa-token.is-concurrent=true
|
|
||||||
sa-token.is-share=true
|
|
||||||
sa-token.token-style=uuid
|
|
||||||
sa-token.is-log=false
|
|
||||||
|
|
||||||
# 短信宝配置
|
|
||||||
# 请前往 https://www.smsbao.com/ 注册账号并获取用户名和密码
|
|
||||||
smsbao.username=corewing
|
|
||||||
smsbao.password=755dc3ac40c94d319cf6e314f24dc659
|
|
||||||
|
|
||||||
# 邮件配置
|
|
||||||
# SMTP 服务器地址
|
|
||||||
spring.mail.host=smtp.em.dingtalk.com
|
|
||||||
# SMTP 服务器端口(465 为 SSL 加密端口)
|
|
||||||
spring.mail.port=465
|
|
||||||
# 发件人邮箱
|
|
||||||
spring.mail.username=dev@corewing.com
|
|
||||||
# 邮箱授权码(不是邮箱密码!需要在邮箱设置中开启 SMTP 服务并获取授权码)
|
|
||||||
spring.mail.password=t035gngwYl0xgvZF
|
|
||||||
# 编码格式
|
|
||||||
spring.mail.default-encoding=UTF-8
|
|
||||||
# 其他配置
|
|
||||||
spring.mail.properties.mail.smtp.auth=true
|
|
||||||
# 465 端口使用 SSL 加密,需要启用 SSL
|
|
||||||
spring.mail.properties.mail.smtp.ssl.enable=true
|
|
||||||
spring.mail.properties.mail.smtp.ssl.required=true
|
|
||||||
# SSL Socket Factory 配置
|
|
||||||
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
|
|
||||||
spring.mail.properties.mail.smtp.socketFactory.port=465
|
|
||||||
spring.mail.properties.mail.smtp.socketFactory.fallback=false
|
|
||||||
|
|
||||||
# 钉钉机器人配置
|
|
||||||
# 请前往钉钉群设置 -> 智能群助手 -> 添加机器人 -> 自定义机器人,获取 Webhook 地址和密钥
|
|
||||||
dingtalk.webhook=https://oapi.dingtalk.com/robot/send?access_token=7eed4b3483303c9ec71ef37a08c347bb597fd4c64211a96a8f55f72405ff6444
|
|
||||||
# 如果使用加签安全设置,请填写密钥(secret)
|
|
||||||
dingtalk.secret=SEC0f2b835f28139905e3c0b5be979b215df1735f1154f36514aafbae8708014148
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ===================== Knife4j 核心增强配置 =====================
|
|
||||||
# 启用Knife4j增强模式
|
|
||||||
knife4j.enable=true
|
|
||||||
knife4j.setting.language=zh_cn
|
|
||||||
knife4j.basic.enable=true
|
|
||||||
knife4j.basic.username=corewing
|
|
||||||
knife4j.basic.password=Aaa123..
|
|
||||||
89
src/main/resources/logback-spring.xml
Normal file
89
src/main/resources/logback-spring.xml
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configuration>
|
||||||
|
<!-- 引入 Spring Boot 2.6.x 的默认配置 -->
|
||||||
|
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||||||
|
|
||||||
|
<!-- 定义属性 -->
|
||||||
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="./logs"/>
|
||||||
|
|
||||||
|
<!-- 自定义转换器 -->
|
||||||
|
<conversionRule conversionWord="tid" converterClass="com.corewing.app.common.aspect.CustomTraceIdConverter"/>
|
||||||
|
|
||||||
|
<!-- 修正:使用正确的属性名 -->
|
||||||
|
<property name="CONSOLE_LOG_PATTERN"
|
||||||
|
value="%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %tid %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
|
||||||
|
|
||||||
|
<!-- 文件日志格式 -->
|
||||||
|
<property name="FILE_LOG_PATTERN"
|
||||||
|
value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %tid %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
|
||||||
|
|
||||||
|
<!-- 本地环境 -->
|
||||||
|
<springProfile name="local">
|
||||||
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
|
<encoder>
|
||||||
|
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
|
||||||
|
<charset>UTF-8</charset>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<root level="INFO">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</root>
|
||||||
|
|
||||||
|
<logger name="com.corewing.app" level="DEBUG" additivity="false">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
</springProfile>
|
||||||
|
|
||||||
|
<!-- 非本地环境 -->
|
||||||
|
<springProfile name="!local">
|
||||||
|
<!-- 控制台输出(用于捕获不到的日志) -->
|
||||||
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
|
<encoder>
|
||||||
|
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
|
||||||
|
<charset>UTF-8</charset>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!-- 错误日志 -->
|
||||||
|
<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>${LOG_PATH}/error.log</file>
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>${LOG_PATH}/error/error-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||||
|
<maxFileSize>10MB</maxFileSize>
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
<totalSizeCap>1GB</totalSizeCap>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||||
|
<charset>UTF-8</charset>
|
||||||
|
</encoder>
|
||||||
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||||
|
<level>ERROR</level>
|
||||||
|
<onMatch>ACCEPT</onMatch>
|
||||||
|
<onMismatch>DENY</onMismatch>
|
||||||
|
</filter>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!-- 所有日志 -->
|
||||||
|
<appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>${LOG_PATH}/app.log</file>
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>${LOG_PATH}/total/app-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||||
|
<maxFileSize>10MB</maxFileSize>
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
<totalSizeCap>3GB</totalSizeCap>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||||
|
<charset>UTF-8</charset>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<root level="INFO">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
<appender-ref ref="FILE_ALL"/>
|
||||||
|
<appender-ref ref="FILE_ERROR"/>
|
||||||
|
</root>
|
||||||
|
</springProfile>
|
||||||
|
</configuration>
|
||||||
Reference in New Issue
Block a user