Spring boot 使用AOP统一处理日志
2018-07-05 17:59
169 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/litao_777/article/details/80930298
在 Spring boot里配置AOP其实很简单,只需在pom文件里加入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>然后配置切面类,下面是配置了一个环绕通知
@Aspect @Component public class LoggerInterceptor { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Around("within(com..*) && @annotation(log)") public Object doAroundMethod(ProceedingJoinPoint pjd, Log log) throws Throwable { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); //路径 logger.info("方法路径:{}",pjd.getSignature().getDeclaringTypeName()+'.'+ pjd.getSignature().getName());//获取类名及类方法 //ip logger.info("调用ip:{}",request.getRemoteAddr()); //定义的注解 String name = log.name();//操作方法名 logger.info("操作方法名:{}", name); Object[] params = pjd.getArgs();//获取请求参数 logger.info("监听到传入参数为:{}",JSON.toJSONString(params)); //###################上面代码为方法执行前##################### Object result = pjd.proceed();//执行方法,获取返回参数 //###################下面代码为方法执行后##################### logger.info("返回参数为:{}",JSON.toJSONString(result)); return result; } }上面环绕通知的触发条件为com.包下并且打了自定义注解log通知才会织入,下面是自定义注解
@Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Log { /** * 接口名字 * @return */ String name() default ""; }
例子
目标方法未加注解/** * 验证验证码 * @param phone 手机号 * @param code 验证码 */ //@Log(name = "验证验证码") public Boolean verification(String phone,String code){ // -----------------String类型数据操作 start-------------------- String s=redisTemplate.opsForValue().get("wallet"+phone); boolean b = code.equals(s); return b; }test@Test public void testAop() { verificationCode.verification("15090009000", "954385"); }结果
添加注解后结果为
相关文章推荐
- Spring Boot中使用AOP统一处理Web请求日志
- spring-boot使用AOP统一处理日志
- Spring Boot中使用AOP统一处理Web请求日志
- Spring Boot入门(6)-使用AOP统一处理Web请求日志
- Spring Boot中使用AOP统一处理Web请求日志
- 详解Spring Boot中使用AOP统一处理Web请求日志
- Spring Boot中使用AOP统一处理Web请求日志
- (十四)SpringBoot使用AOP统一处理Web请求日志添加MDC
- Spring Cloud Spring Boot mybatis分布式微服务云架构(四十)使用AOP统一处理Web请求日志(1)
- spring-boot使用AOP统一处理日志
- spring-boot使用AOP统一处理日志
- Spring Boot中使用AOP统一处理Web请求日志
- Spring Boot中使用AOP统一处理Web请求日志
- (转)Spring Boot中使用AOP统一处理Web请求日志
- springboot【19】日志管理之使用AOP统一处理Web请求日志
- Spring Boot中使用AOP统一处理Web请求日志
- Spring Boot教程(六)使用AOP统一处理Web请求日志
- 46. Spring Boot中使用AOP统一处理Web请求日志【从零开始学Spring Boot】
- Spring Boot中使用AOP统一处理Web请求日志
- SpringBoot基础教程2-1-6 日志规范-使用AOP统一处理Web日志