日志对象的获取
在类中声明如下语句:
private static final Logger logger = LoggerFactory.getLogger(ControllerAspect.class);
其中参数ControllerAspect.class表示获取当前类的Class对象作为传入参数。
Logger使用的是org.slf4j.Logger类。
切面类的创建
1.类注解
首先新建一个类,在类上加上@Aspect这个注解进行声明。同时加@Component注解,将该类实例的生命周期交给Spring来管理。
2.切入点
接着,声明切入点和切入点表达式。可创建一个空的方法,在方法上添加注解@Pointcut来进行声明,例如:
@Pointcut(value = "execution(public * com.zqf.backend.system.web.controller.*.*(..))")
public void pointcut(){}
3.具体代码
@Before(value = "pointcut()")
public void doBefore(JoinPoint joinPoint){
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
//url
logger.info("url={}", request.getRequestURL());
//请求method
logger.info("method={}", request.getMethod());
//ip
logger.info("ip={}", request.getRemoteAddr());
//类方法
logger.info(joinPoint.getSignature().getDeclaringTypeName()+" "+joinPoint.getSignature().getName());
//参数
logger.info("args={}", joinPoint.getArgs());
}
@After(value = "pointcut()")
public void doAfter(){
}
7536

被折叠的 条评论
为什么被折叠?



