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

    它利用一种称为"横切"的技术,能够剖解开封装的对象内部,并将那些影响了多个类并且与具体业务无关的公共行为 封装成一个独立的模块(称
    为切面)。更重要的是,它又能以巧夺天功的妙手将这些剖开的切面复原,不留痕迹的融入核心业务逻辑中。这样,对于日后横切功能的编辑和重用都能够带来极大
    的方便。    AOP技术的具体实现,无非也就是通过动态代理技术或者是在程序编译期间进行静态的"织入"方式。下面是这方面技术的几个基本术语:    

    1、join point(连接点):是程序执行中的一个精确执行点,例如类中的一个方法。它是一个抽象的概念,在实现AOP时,并不需要去定义一个join point。    

    2、point cut(切入点):本质上是一个捕获连接点的结构。在AOP中,可以定义一个point cut,来捕获相关方法的调用。    

    3、advice(通知):是point cut的执行代码,是执行“方面”的具体逻辑。 

    4、aspect(切面):point cut和advice结合起来就是aspect,它类似于OOP中定义的一个类,但它代表的更多是对象间横向的关系。   

    引入jar包

    aopalliance.jar

    aspectjweaver.jar

    spring-aop-3.2.16.RELEASE.jar

    SpringConfig.xml中配置

    <!-- 定义切面程序 -->
    <!-- 编写切面组件类 -->
    <bean id="thelog" class="Aop.AopText"></bean>

    <!-- 切入
    <aop:config>

    <aop:pointcut expression="execution(* biz.*.*(..))" id="pointcut"/>定义切入点
      <aop:aspect ref="thelog">
        <aop:before method="Before" pointcut-ref="pointcut"/>

        把切面程序中的Before方法,在程序运行前切入到满足 biz.*.*(..)) 条件的类的方法中

        <aop:after-returning method="after" returning="result" pointcut-ref="pointcut"/>调用方法后切入
        <aop:after-throwing method="aerror" pointcut-ref="pointcut" throwing="ex"/>  程序报错时加入异常程序
      </aop:aspect>
    </aop:config>
    -->

    AopText.中的方法

    一般情况加入注解来使用

     SpringConfig.xml中配置

    <!-- 定义切面程序 -->
    <!-- 编写切面组件类 -->
    <bean id="thelog" class="Aop.AopText"></bean>
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

    AopText中 同上图所示

      

    窗竹影摇书案上,野泉声入砚池中。 少年辛苦终身事,莫向光阴惰寸功
  • 相关阅读:
    分析存储过程重编译的起因以及避免
    存储过程重编译的优点、缺点、确定引发语句
    运用计划缓冲的建议
    查询计划Hash和查询Hash
    执行计划的重用
    执行计划组件、组件、老化
    执行计划的生成
    统计的基本操作语法 <第五篇>
    javascript 之 location.href、跨窗口调用函数
    git 删除远程分支和本地分支
  • 原文地址:https://www.cnblogs.com/qhantime/p/10746249.html
Copyright © 2011-2022 走看看