aop的第二種配置方法:aop:aspect

第二種配置方法:aop:aspect
馬克- to-win:馬克 java社區(qū):防盜版實名手機尾號: 73203
例 2.1.2
上一種方法需要實現(xiàn)接口,這種不用。這就是二者的區(qū)別。
加入以下兩段:
    <bean id="myTransactionManagerAspect" class="aop.AOPMyTransactionManagerAspeMark_To_Win" />




        <aop:aspect ref="myTransactionManagerAspect">
            <aop:before method="startTransaction" pointcut-ref="myPointcut" />
            <aop:after-returning method="commitTransaction" pointcut-ref="myPointcut"/>
        </aop:aspect>




兩種方法和一塊,成為以下的樣子:


    <bean id="myTransactionManagerAspect" class="aop.AOPMyTransactionManagerAspeMark_To_Win" />
  
    <!-- 配置切面 這種寫法也正確"execution(* service.*.*(..))"-->
    <aop:config>
        <aop:pointcut id="myPointcut" expression="execution(* service.LoginServiceImpl.*(..))" />
        <aop:aspect ref="myTransactionManagerAspect">
            <aop:before method="startTransaction" pointcut-ref="myPointcut" />
            <aop:after-returning method="commitTransaction" pointcut-ref="myPointcut"/>
        </aop:aspect>
    </aop:config> 



package aop;

public class AOPMyTransactionManagerAspeMark_To_Win {
    public void startTransaction() {
        System.out.println("模擬start transaction aspect");
    }
    public void commitTransaction() {
        System.out.println("模擬commit transaction aspect");
    }
}


輸出結(jié)果:

模擬start transaction aspect
LoginServiceImpll
模擬commit transaction aspect
after loginServic.login()