美文网首页
Spring-AOP

Spring-AOP

作者: zhanglbjames | 来源:发表于2017-06-20 15:24 被阅读0次

AOP的概念

面向切面的编程,切面用于描述分散在对象、类或者函数中的横向关注点,通过分离这些关注点,把解决特定领域问题的代码从业务逻辑中独立出来,他们之间的关系通过切面来维护。效果是保证程序员在不修改源代码的情况下,为系统中业务组件的多个业务方法添加某种通用功能。

组成:

  • 切面:要实现的功能,是系统模块化的一个切面或领域。如调用时间。
  • 通知:切面的实际实现,他通知系统新的行为。通知在连接点插入到系统中。
  • 连接点:应用程序执行过程中插入切面的地点。连接点如下


  • 切入点:定义了通知应该应用在哪些连接点上,通知可以应用在aop框架支持的任何连接点。可以这样理解,切入点就是当通知插入到某个连接点时,这个连接点就成了切入点。
  • 引入:为类添加新方法和属性
  • 目标对象:被通知的对象,既可以是被通知的类,也可以是第三方类。
  • 代理:将通知应用到目标对象之后创建的对象,应用系统的其他部分不用为了支持代理对象而改变。
  • 织入:将切面应用到目标对象从而创建的一个新的对象的过程,织入发生在目标对象生命周期的多个点上。

AOP实现原理

分为静态实现和动态实现,动态实现要比动态实现效率高,因为一个动态代理能代理多个实现了指定接口的对象(目标对象),而静态代理,需要为每一个目标对象都写一个代理类,重复代码。

1.静态实现,在编译阶段对程序进行修改,生成代理类,AspectJ
2.动态实现,运行阶段动态生成,在Spring AOP中有两种代理方式,JDK动态代理和CGLIB代理。默认情况下,目标对象实现了接口时,则采用JDK动态代理其接口,反之,采用CGLIB代理。

JDK动态代理示例



AOP的使用示例

示例


execution用来匹配方法


参考链接
其他切入点表达式http://blog.csdn.net/wangpeng047/article/details/8556800

相关文章

  • 自定义注解,aop+redis,实现controller接口频率

    1,环境配置 引入aop的jar包compile 'org.springframework:spring-aop:...

  • spring-4.3.4.RELEASE集成AOP 实战

    一、依赖引入 (包括 spring-aop 以及 aspectj) 二、切面配置代码 (使用 javaConfig...

  • spring-AOP

    Aspects,切面 spring-aop 是spring-aspects的上层建筑 targetClass Me...

  • spring-aop

    aop概念aop概念aop术语AOP实现方式1、spring-aop(使用xml文件实现AOP)2、AspectJ...

  • spring-aop

    Aop-面向切面编程,在程序中主要用来解决一些系统层面上的问题,比如:日志,事务,权限等。 aop的一些基本概念:...

  • spring-aop

    1, aop的两种实现机制动态代理:利用jdk/cglib动态代理,性能弱一丢丢 jdk动态代理:所有的方法调用被...

  • spring-aop

  • Spring-AOP

    AOP的概念 面向切面的编程,切面用于描述分散在对象、类或者函数中的横向关注点,通过分离这些关注点,把解决特定领域...

  • spring-aop

    aop概念 aop术语 joinpoint连接点:类中可以被增强的方法(其实就是类中的方法) pointcut切入...

  • spring-aop

    aop 概念:面向切面编程作用:不用修改原来的类就可以添加新功能 专业术语 joinpoint 连接点:类中可以被...

网友评论

      本文标题:Spring-AOP

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