• springBoot AOP切面编程


    AOP 为 Aspect Oriented Programming 的缩写,意为 面向切面编程。AOP 为spring 中的一个重要内容,它是通过对既有程序定义一个切入点,然后在其前后切入不同的执行内容。

    AOP 不会破坏原有程序的逻辑,很好的和业务逻辑进行隔离,耦合度低。

    常用比如AOP 的日志记录。

    1.pom加入AOP依赖包

    <!--AOP切面 start-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-aop</artifactId>
            </dependency>
            <!--AOP切面 end-->

    2.建立LogAspect 类,该类必须在 主程序的扫包范围内

    @Aspect
    @Component
    @Slf4j
    public class LogAspect {
    
        @Pointcut("execution(public * 扫包路径..*.*(..))")
        public void LogHelp() {
        }
    
        @Pointcut("execution(public * 扫包路径..*.*(..))")
        public void LogErrorHelp() {
        }
    
        @Before("LogHelp()")
        public void doBefore(JoinPoint joinPoint) throws Throwable {
            // 接收到请求,记录请求内容
            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            HttpServletRequest request = attributes.getRequest();
            // 记录下请求内容
            System.out.println("URL : " + request.getRequestURL().toString());
            System.out.println("HTTP_METHOD : " + request.getMethod());
            System.out.println("IP : " + request.getRemoteAddr());
            System.out.println("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
            System.out.println("ARGS : " + Arrays.toString(joinPoint.getArgs()));
        }
    
        @AfterReturning(returning = "ret", pointcut = "LogHelp()")
        public void doAfterReturning(Object ret) throws Throwable {
            // 处理完请求,返回内容
            System.out.println("方法的返回值 : " + ret);
        }
    
        @AfterThrowing("LogErrorHelp()")
        public void doAfterThrowing(JoinPoint jp) {
            System.out.println("方法异常时执行.....");
            System.out.println(jp.toString());
        }
    }//end
    欢迎指正:haizi2014@qq.com
  • 相关阅读:
    05.Linux Startup & Shutdown
    04.Linux Disk Partition & Mount Point
    03Oracle数据查询(二)
    02Oracle数据查询(一)
    01Oracle数据库系统环境搭建
    02域名的选择技巧与注册实战
    01快速认识阿里云网站建设
    Linux文件操作
    Linux目录操作
    Linux根目录介绍
  • 原文地址:https://www.cnblogs.com/hcfan/p/9888413.html
Copyright © 2020-2023  润新知