zoukankan      html  css  js  c++  java
  • (spring-第17回【AOP基础篇】) 创建增强类

    一、   增强类包含的信息:

    a)   横切逻辑(插入的具体代码)

    b)   部分连接点信息(在方法的哪个位置插入代码,比如方法前、方法后等)。

    二、   增强的类型

    每一种增强有一个需要实现的增强类。

    a)   前置增强

    1. 顾名思义,在目标方法前实施增强。

    2. 增强类:org.springframework.aop.MethodBeforeAdvice.

    3. 举例,三步走:

    1)   第一步,创建目标类接口和目标类:

       

       

    2)   第二步,实现MethodBeforeAdvice,创建增强类:

    3)   第三步,通过ProxyFactory把增强织入目标类,并生成代理。

    4)   第三步改为在XML中配置:

      1. 配置中当然还有一些其他属性。比如singleton,决定返回是否为单实例等。
      2. 三个P分别为:指定代理的接口、指定目标类、指定增强

    5)   注意事项:

      1. ProxyFactory 内部使用JDK代理或CGLib代理。
      2. 通过ProxyFactory的setInterfaces可以指定针对接口进行代理(这时ProxyFactory就使用JDK动态代理。)
      3. 如果是针对类的代理,则使用CGLib。
      4. 通过ProxyFactory 的setOptimize(true)可启动自动优化代理。

    b)   后置增强

    c)   环绕增强(综合实现了前置、后置增强)

    d)   异常抛出增强

    常用于事务管理,当参与事务的某个Dao发生异常时,事务管理器就必须回滚事务。这时可以在增强逻辑中写回滚代码。

    e)   引介增强

    1. 引介增强是一种比较特殊的增强类型,它不是在目标方法周围织入增强,而是为目标类创建新的方法和属性

    2. 所以,引介增强的连接点是类级别的,而非方法级别。

    3. 所以,我们可以给目标类添加一个接口的实现,即原来目标类未实现某个接口,通过引介增强可以为目标类创建某接口的代理。

    4. 举例:三步走:

    1)   第一步,定义接口

       

      第四行是我们企图加在目标类上的增强方法。

    2)   第二步,通过XML配置把增强织入目标类

    3)   第三步,强制实现

  • 相关阅读:
    2-Requests库的使用
    1-urllib库的使用
    (一)数据结构-基本数学知识
    maven配置阿里云仓库
    mac安装homebrew
    创建简单spring boot项目
    Java反射
    Python3 去除空格
    Spot 安装和使用
    安装LLVM
  • 原文地址:https://www.cnblogs.com/mesopotamia/p/5518908.html
Copyright © 2011-2022 走看看