美文网首页我爱编程
什么是基于注解的切面实现

什么是基于注解的切面实现

作者: YangEvol | 来源:发表于2018-05-28 14:54 被阅读0次

    总结:
    用注解的方式实现的面向切面编程(AOP),可以在某个方法的执行前或者执行后插入一些代码(例如日志功能的代码)。

    原理:
    参考链接:https://www.cnblogs.com/biehongli/p/6640406.html

    1:Aop(aspect object programming)面向切面编程,名词解释:
    1.1:功能:让关注点代码与业务逻辑代码分离
    1.2:关注点
    重复代码就叫做关注点
    1.3:切面
    关注点形成的类,就叫做切面(类)
    面向切面编程,就是指对很多功能都有的重复代码抽取,再在运行的时候往业务方法上动态植入"切面类代码";
    1.4:切入点
    执行目标对象方法,动态植入切面代码
    可以通过切入点表达式,指定拦截那些类的那些方法,给指定的类在运行的时候植入切面类代码;

    package com.bie.aop;

    import org.aspectj.lang.annotation.After;
    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;
    import org.aspectj.lang.annotation.Pointcut;
    import org.springframework.stereotype.Component;

    /**

    • @author BieHongLi

    • @version 创建时间:2017年3月28日 下午9:10:43

    • @Aspect:指定当前类为切面类
      */
      @Component //加入到IoC容器
      @Aspect //指定当前类为切面类
      public class Aop {

      //指定切入点表达式,拦截那些方法,即为那些类生成代理对象
      //@Pointcut("execution(* com.bie.aop.UserDao.save(..))") ..代表所有参数
      //@Pointcut("execution(* com.bie.aop.UserDao.())") 指定所有的方法
      //@Pointcut("execution(
      com.bie.aop.UserDao.save())") 指定save方法

      @Pointcut("execution(* com.bie.aop.UserDao.*(..))")
      public void pointCut(){

      }

      @Before("pointCut()")
      public void begin(){
      System.out.println("开启事务");
      }

      @After("pointCut()")
      public void close(){
      System.out.println("关闭事务");
      }

    }

    相关文章

      网友评论

        本文标题:什么是基于注解的切面实现

        本文链接:https://www.haomeiwen.com/subject/jmhkjftx.html