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中 同上图所示

      

    窗竹影摇书案上,野泉声入砚池中。 少年辛苦终身事,莫向光阴惰寸功
  • 相关阅读:
    SA 的参数
    superobject中 JavaToDelphiDateTime的使用
    关于Linux下进程间使用共享内存和信号量通信的时的编译问题
    Linux匿名管道与命名管道
    C++复数四则运算的实现
    C++类编程(一)const的使用
    读书会思考与学期总结
    xenomai安装
    Xenomai 安装准备工作
    Xenomai
  • 原文地址:https://www.cnblogs.com/qhantime/p/10746249.html
Copyright © 2011-2022 走看看