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