编写基础框架中,需要实现使用日志来记录前端请求以及后端返回的信息。
1.pom.xml中引入切面依赖
<!-- aop -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
2.编写日志切面
@Aspect
@Component
@Slf4j
public class MyApiLogAspect {
@Pointcut("execution(* *..controller..*(..))")
public void apiPointcut(){
}
@Before("apiPointcut()")
public void doBefore(JoinPoint joinPoint){
try{
//日志记录请求参数等信息
} catch (Exception e){
throw new BusinessException(SystemErrorCode.API_LOG_BEFORE_ERROR);
}
}
@AfterReturning(returning = "ret", pointcut = "apiPointcut()()")
public void doAfterReturning(Object ret){
try{
//日志记录返回参数等信息
} catch (Exception e){
throw new BusinessException(SystemErrorCode.API_LOG_RESPONSE_ERROR);
}
}
}
3.编写自定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Import(MyApiLogAspect.class)
public @interface ApiLog {
}
在项目中使用@ApiLog注解即可实现日志切面功能。