zoukankan      html  css  js  c++  java
  • Spring面向切面编程

      1、面向切面编程(AOP)的概念:把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而不用在每个需要用到该功能的地方显式调用。

      2、术语解释:

           横切关注点:分布应用于多处的功能

           切面:横切关注点可以被模块化为一个类,这个类被称为一个切面

           通知(advice):切面要完成的工作。Spring的通知有5种类型:before、after、after-returning、after-throwing和around这五种类型。

           连接点(joinpoint):连接点表示在何种操作发生时应用切面。比如方法调用时、修改字段时和抛出异常时等等

           切点(pointcut):一般用某个包中的类的明确的方法来指定在何处应用切面,应用切面的这个点便称为切点,一般用切点来指定连接点。

      3、使用切点来选择连接点:

          切点用于准确定位该在什么地方应用切面,切点和通知时AOP的基本元素。

           编写切点(使用aspectJ表达式来定位):

    41

    42

    在表达式中,一般用and、or和not来代替&&、||和!。

    Spring中用bean()指示器来制定在某个bean中的方法被调用时才应用应用切面:

    43

    4、在XML中声明切面:

    首先要引入命名空间:

    47

    完成配置之后首先定义一个切面类:

    45

    然后要将被定义切面的类声明为一个bean,可以用@component或者<bean>标签

    接着在XML中配置切面

    44

    在spring中有很多关于AOP的声明,来指定前置通知、后置通知和环绕通知等:

    46

    5、声明环绕通知:

    环绕通知的方法要传入一个特殊的参数:

    48

    然后用<AOP:around>标签声明该通知即可:

    49

    6、为通知添加参数:

    50

  • 相关阅读:
    HDU 6182 A Math Problem 水题
    HDU 6186 CS Course 位运算 思维
    HDU 6188 Duizi and Shunzi 贪心 思维
    HDU 2824 The Euler function 欧拉函数
    HDU 3037 Saving Beans 多重集合的结合 lucas定理
    HDU 3923 Invoker Polya定理
    FZU 2282 Wand 组合数学 错排公式
    HDU 1452 Happy 2004 数论
    HDU 5778 abs 数论
    欧拉回路【判断连通+度数为偶】
  • 原文地址:https://www.cnblogs.com/hewenwu/p/3823334.html
Copyright © 2011-2022 走看看