feat(log): 新增日志注解功能并集成到认证流程

- 新增 @Log 注解及其配置类 LogConfig
- 在 AuthController 的 refreshToken 方法上添加 @Log 注解
- 创建 zkh-log 模块并引入 spring-boot-starter-aop 依赖
- 在 zkh-web 模块中引入 zkh-log 依赖
- 调整 GlobalExceptionHandler 和 RedisConfig 类中的代码缩进格式
- 更新 pom.xml 文件,加入 zkh-log 模块并调整依赖版本声明位置
- 修改 SpringDocConfig、WebSecurityConfig 等配置类的 bean 名称以避免冲突
This commit is contained in:
zkh
2025-12-01 16:31:45 +08:00
parent a7e1c26853
commit fe2240e266
11 changed files with 317 additions and 271 deletions
+6
View File
@@ -38,6 +38,7 @@
<module>zkh-common</module> <module>zkh-common</module>
<module>zkh-web</module> <module>zkh-web</module>
<module>zkh-data</module> <module>zkh-data</module>
<module>zkh-log</module>
</modules> </modules>
<properties> <properties>
@@ -71,6 +72,11 @@
<artifactId>zkh-data</artifactId> <artifactId>zkh-data</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>vip.jcfd</groupId>
<artifactId>zkh-log</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.springdoc</groupId> <groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-common</artifactId> <artifactId>springdoc-openapi-common</artifactId>
-6
View File
@@ -13,12 +13,6 @@
<name>ZKH Data</name> <name>ZKH Data</name>
<description>Data layer components for ZKH framework</description> <description>Data layer components for ZKH framework</description>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>jakarta.persistence</groupId> <groupId>jakarta.persistence</groupId>
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>vip.jcfd</groupId>
<artifactId>zkh-framework</artifactId>
<version>1.4</version>
</parent>
<artifactId>zkh-log</artifactId>
<name>ZKH log</name>
<description>Logging utilities for ZKH framework</description>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,10 @@
package vip.jcfd.log.annotation;
import java.lang.annotation.*;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Log {
String value();
}
@@ -0,0 +1,7 @@
package vip.jcfd.log.annotation.config;
import org.springframework.context.annotation.Configuration;
@Configuration("_logConfiguration")
public class LogConfig {
}
+4
View File
@@ -19,6 +19,10 @@
<groupId>vip.jcfd</groupId> <groupId>vip.jcfd</groupId>
<artifactId>zkh-common</artifactId> <artifactId>zkh-common</artifactId>
</dependency> </dependency>
<dependency>
<groupId>vip.jcfd</groupId>
<artifactId>zkh-log</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
@@ -13,7 +13,7 @@ import vip.jcfd.common.core.R;
import java.util.List; import java.util.List;
@RestControllerAdvice @RestControllerAdvice("_globalExceptionHandler")
public class GlobalExceptionHandler { public class GlobalExceptionHandler {
private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
@@ -10,7 +10,7 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
import vip.jcfd.web.config.props.SecurityProps; import vip.jcfd.web.config.props.SecurityProps;
import vip.jcfd.web.redis.TokenRedisStorage; import vip.jcfd.web.redis.TokenRedisStorage;
@Configuration @Configuration("_redisConfiguration")
public class RedisConfig { public class RedisConfig {
private final SecurityProps securityProps; private final SecurityProps securityProps;
@@ -10,7 +10,7 @@ import org.springdoc.core.customizers.OpenApiCustomizer;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration("_springDocConfig") @Configuration("_springDocConfiguration")
public class SpringDocConfig { public class SpringDocConfig {
@Bean @Bean
@@ -52,7 +52,7 @@ import java.io.IOException;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
@Configuration @Configuration("_webSecurityConfiguration")
@EnableWebSecurity @EnableWebSecurity
@ConfigurationPropertiesScan(basePackageClasses = {SecurityProps.class}) @ConfigurationPropertiesScan(basePackageClasses = {SecurityProps.class})
@EnableJpaAuditing @EnableJpaAuditing
@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
import vip.jcfd.common.core.R; import vip.jcfd.common.core.R;
import vip.jcfd.common.dto.TokenRefreshRequest; import vip.jcfd.common.dto.TokenRefreshRequest;
import vip.jcfd.common.dto.TokenRefreshResponse; import vip.jcfd.common.dto.TokenRefreshResponse;
import vip.jcfd.log.annotation.Log;
import vip.jcfd.web.auth.RefreshTokenAuthenticationToken; import vip.jcfd.web.auth.RefreshTokenAuthenticationToken;
import vip.jcfd.web.redis.TokenRedisStorage; import vip.jcfd.web.redis.TokenRedisStorage;
@@ -37,6 +38,7 @@ public class AuthController {
@PostMapping("/refresh-token") @PostMapping("/refresh-token")
@Operation(summary = "刷新Token", description = "使用Refresh Token获取新的Access Token和Refresh Token") @Operation(summary = "刷新Token", description = "使用Refresh Token获取新的Access Token和Refresh Token")
@Log("刷新了token")
public R<TokenRefreshResponse> refreshToken( public R<TokenRefreshResponse> refreshToken(
@Valid @RequestBody TokenRefreshRequest request) { @Valid @RequestBody TokenRefreshRequest request) {