SpringBoot应用中使用AOP记录接口访问日志
以下是一个使用Spring Boot和AspectJ实现接口访问日志记录的简单示例:
- 添加依赖到你的
pom.xml
:
<dependencies>
<!-- Spring Boot相关依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- AspectJ依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
</dependencies>
- 创建一个切面类来记录日志:
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LoggingAspect {
private static final Logger logger = LoggerFactory.getLogger(LoggingAspect.class);
@Pointcut("execution(public * com.yourpackage..*Controller.*(..))")
public void controllerLog(){}
@AfterReturning("controllerLog()")
public void logAfter(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().toShortString();
logger.info("Method {} executed successfully", methodName);
}
}
确保将com.yourpackage
替换为你的实际包名。
- 在你的Spring Boot应用中使用:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class YourApplication {
public static void main(String[] args) {
SpringApplication.run(YourApplication.class, args);
}
}
这个简单的例子演示了如何在Spring Boot应用中使用AspectJ来记录控制器层的接口访问日志。每次控制器层的方法成功执行后,都会在日志中记录方法名。这个例子可以根据实际需求进行扩展,比如记录方法的入参、返回值、执行时间等信息。
评论已关闭