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

  • 相关阅读:
    数学之美
    作为一个程序员,你知道每天自己在做什么吗
    搭建ssm框架log4j日志
    webpack实践——DLLPlugin 和 DLLReferencePlugin的使用
    一些实用的技巧
    详解Vue 开发模式下跨域问题
    vue resource 携带cookie请求 vue cookie 跨域
    解决vue中element组件样式修改无效
    ES6 Promise 异步操作
    js 字符串操作函数
  • 原文地址:https://www.cnblogs.com/hewenwu/p/3823334.html
Copyright © 2011-2022 走看看