在SpringBoot中使用Aop功能实现日志功能

实现背景

主要是为了熟悉Aop的主要注解及功能,给项目的Controller层加上日志

首先在pom文件里面加入aop依赖

<dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-aopartifactId>
dependency>

相比入ssm,springboot简化了很多的注解
直接看切面类

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;/*** 为controller层编写了一个切面aop日志文件** @Aspect表示这是一个切面* @Component*/
@Aspect
@Component
public class WebLogAspect {private final Logger logger = LoggerFactory.getLogger(WebLogAspect.class);/*** 定义一个controller包的切入点,包含表达式和表达式签名* execution(方法修饰符(可选)  返回类型  类路径 方法名  参数  异常模式(可选))*/@Pointcut("execution(public * com.springboot.richttms.controller..*.*(..))")public void controllerLog(){ }//这个方法其实就是签名,没有实际用处,用来标记一个pointcut//在切入点的run方法之前执行这个方法@Before("controllerLog()")public void logBeforeController(JoinPoint joinPoint){RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();//这个RequestContextHolder是Springmvc提供来获得请求的东西HttpServletRequest request = ((ServletRequestAttributes)requestAttributes).getRequest();logger.info("################URL : " + request.getRequestURL(


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部