springboot日志切面通用类实例详解
1.pom.xml文件导入AOP依赖
org.springframework.boot spring-boot-starter-aop 2.3.0.RELEASE
2.pom.xml导入Lombok依赖
org.projectlombok lombok true
packagejmu.rjc.aspect;
importlombok.AllArgsConstructor;
importlombok.Data;
importlombok.NoArgsConstructor;
importlombok.ToString;
importorg.aspectj.lang.JoinPoint;
importorg.aspectj.lang.annotation.*;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.springframework.stereotype.Component;
importorg.springframework.web.context.request.RequestContextHolder;
importorg.springframework.web.context.request.ServletRequestAttributes;
importjavax.servlet.http.HttpServletRequest;
//日志切面
@Aspect
@Component
publicclassLogAspect{
privatefinalLoggerlogger=LoggerFactory.getLogger(this.getClass());
//包名配置为自己的项目包名即可
@Pointcut("execution(*jmu.rjc.web.*.*(..))")
publicvoidlog(){}
@Before("log()")
publicvoiddoBefore(JoinPointjoinPoint){
ServletRequestAttributesattributes=(ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequestrequest=attributes.getRequest();
Stringurl=request.getRequestURL().toString();
Stringip=request.getRemoteAddr();
StringclassMethod=joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName();
Object[]args=joinPoint.getArgs();
RequestLogrequestLog=newRequestLog(url,ip,classMethod,args);
logger.info("Request:{}",requestLog);
}
@After("log()")
publicvoiddoAfter(){
logger.info("---------doAfter-------");
}
@AfterReturning(returning="result",pointcut="log()")
publicvoiddoAfterReturn(Objectresult){
logger.info("Result:{}"+result);
}
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
privateclassRequestLog{
privateStringurl;
privateStringip;
privateStringclassMethod;
privateObject[]args;
}
}
3.关于Lombok的注意点
Lombok的使用大大简化了开发过程,提高了开发效率,但是也存在一些隐患.比如强行侵入jar包,JDK版本升级冲突,破坏部分封装性等缺陷,使用前最好和团队商量好
到此这篇关于springboot日志切面通用类的文章就介绍到这了,更多相关springboot日志切面通用类内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。