日志是所有系统必不可少的部分,而AOP在MVC通常用于监控方法调用,可以生成一个traceid,记录从用户调用到底层数据库的数据链路,帮助监控和排查问题。
AOP
现在做一个简单的前置切面,用来记录方法和入参,需要修改如下文件
public class ControllerAspect { private final static org.slf4j.Logger logger = LoggerFactory.getLogger(ControllerAspect.class); public void before(JoinPoint joinPoint) { MethodSignature methodSignature = (MethodSignature)joinPoint.getSignature(); System.out.println("方法名:"+methodSignature.getMethod().getName()+" 参数列表:"+ArrayToParameterString(methodSignature.getParameterNames(),joinPoint.getArgs())); } private String ArrayToParameterString(String[] parameterNames,Object[] parameterValues) { StringBuffer sb = new StringBuffer(); if (parameterNames != null && parameterNames.length > 0) { for (int i = 0; i < parameterNames.length; i++) { sb.append(parameterNames[i]); sb.append(":"); sb.append(parameterValues[i]); sb.append(";"); } } return sb.toString(); } }