zoukankan      html  css  js  c++  java
  • Spring AOP

    AOP: Aspect Object Programming 面向切面编程。

    AOP的主要功能是让关注点代码和业务代码分离。

    关注点即重复的代码,切面即关注点形成的类。

    面向切面编程即面向重复的代码编程,在运行的时候业务方法动态植入“切面类代码”。

    AOP的相关jar包

    1、spring-aop.jar

    2、aspectj.jar(aop的依赖包)

    3、aspectjweaver.jar

    4、aopalliance.jar

    XML配置及切入点表达式

    <!-- 切面类 -->
      <bean id="aop" class="com.istonestone.aop"></bean>
        
        <!-- AOP配置 -->
        <aop:config>
            <!-- 定义一个切入点表达式,拦截哪些方法 “ * com.isoftstone.aop.*.*(..)”格式说明
            “修饰符 包名.类名.方法名(方法参数)”即  拦截com.isoftstone.aop包下任何类带任何参数返回修饰符的方法
            -->
            <aop:pointcut id="pt" expression="execution(* com.isoftstone.Dao.*.*(..))"/>
            
            <!-- 拦截所有public方法-->
            <aop:pointcut id="pt1" expression="execution(public * *(..))"/>
            
            <!-- 拦截指定方法 ,例如拦截所有save方法-->
            <aop:pointcut id="pt2" expression="execution(* save*(..))"/>
            
            <!-- 拦截指定类的指定方法 -->
            <aop:pointcut id="pt3" expression="execution(* com.isoftstone.Dao.save(..))"/>        
            
            <!-- 拦截包及其子包下的所类的所有方法 -->
            <aop:pointcut id="pt4" expression="execution(* com..*(..))"/>
            
            <!--拦截多个表达式  -->
            <aop:pointcut id="pt5" expression="*execution(* com.isoftstone.Dao.save(..)) or * execution(* com.isoftstone.Dao.update(..))"/>
            
            <!-- 取非值 -->
            <aop:pointcut id="pt6" expression="!execution(* com.isoftstone.Dao.save(..))"/>        
            
            <aop:aspect ref="aop">
                <!-- 环绕通知 -->
                <aop:around method="around" pointcut-ref="pt"/>
                
                <!-- 前置通知,在目标方法调用前执行 -->
                <aop:before method="begin" pointcut-ref="pt"/>
                
                <!-- 后置通知 -->
                <aop:afater method="after" pointcut-ref="pt"/>
                
                <!-- 返回后通知 -->
                <aop:afater-returning method="afterRetruning" pointcut-ref="pt"/>
                
                <!-- 异常通知 -->
                <aop:afater-throwing method="afterThrowing" pointcut-ref="pt"/>
                
            </aop:aspect>
        </aop:config>
  • 相关阅读:
    Eclipse安装Hadoop插件
    (转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置
    Hadoop--DataNode无法启动
    启动与关闭hadoop
    hadoop中执行命令时发生错误
    strings命令
    Deriving data from ElasticSearch Engine
    elasticsearch data importing
    reading words in your computer and changing to female voice, linux festival text2wave saving wav files
    DDNS client on a Linux machine
  • 原文地址:https://www.cnblogs.com/StanLong/p/6986945.html
Copyright © 2011-2022 走看看