AOP切面

AOP切面(Aspect)

切面: 比如说 事物、权限, 与业务没有任何关系。

 

/**
 * 事物类(Aspect)
 * @author Administrator
 *
 *AOP
 *
 *切面: 比如说  事物、权限, 与业务没有任何关系。
 * 
 */
public class Transcation {

    public void beginTrancation(){
        System.out.println("开启事物");
    }

    public void commit(){
        System.out.println("提交事物");
    }
}

 

目标对象

 

public class QueryRunnerImpl implements QueryRunner {
    /**
     * 跟新
     */
    public int update(String sql){ 
        //前置通知

        System.out.println("保存数据库:"+sql);
        return 1;

         //后置通知
    }  

}   

 

joinpoint(连接点): 指目标对象里面 所有的 方法。

Pointcut(切入点):指要拦截目标对象的 哪些方法?

Advice(通知):指定 被拦截到的方法,做出相应通知。

Weaving(织入):是指把切面应用到目标对象来创建新的代理对象的过程

ApplicationContext.xml配置详解

 

<bean id="queryRunnerImpl" class="dao.QueryRunnerImpl"></bean>


<!-- 事物 -->
<bean id="transcation" class="dao.Transcation"></bean>


<!-- AOP -->
<aop:config>
    <!-- 切入点
    表达式例子:
      住意公共方法的抛行:
      execution (public * *(..))
      住何一-个名字以"set"幵始的方法的执行:execution (* set*(..))
      Accountservice接口定义的任意方法的执行:
      execution ( * com.xyz.service.AccountService.*(..))
      在service包中定义的任意方法的执行:
      execution ( * com.xyz.service.*.*(..) )
      在service包或其子包中定义的任意方法的执行:
      execution ( * com.xyz.service..*.*(..) )
     -->
    <aop:pointcut 
            expression="execution(* dao..*.*(..))" 
            id="point"/>

    <!-- 切面 -->     
    <aop:aspect ref="transcation">
        <!-- 
            前置通知  在目标方法输出之前执行
            method 前置通知的名字
            pointcut-ref 指向切入点表达式
         -->
        <aop:before method="beginTrancation" pointcut-ref="point"/>
        <!-- 
            后置通知  在目标方法输出之后执行
            method 前置通知的名字
            pointcut-ref 指向切入点表达式
         -->
        <aop:after-returning  method="commit" pointcut-ref="point"/>

    </aop:aspect>

</aop:config>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值