Spring AOP編程(兩種:1,傳統的AOP切面編程 2,基於aspectj框架切點傳統開發)


Spring AOP編程(兩種:1,傳統的AOP切面編程  2,基於aspectj框架切點傳統開發)



第一種,Spring傳統AOP編程開發

在傳統的spring aop中有5種對類中方法的增強

1,前置通知   在目標方法之前來執行對類中方法的增強

2,後置通知   在目標方法執行之後來執行方法增強

3,環繞通知   在目標方法執行前後拋出方法的增強

4,異常拋出通知在發生異常的時候拋出對方法的增強

5,引介通知  在目標類中添加一些新的方法或屬性,開發中不常用

 

 

Spring傳統AOP的實現流程

1,創建通知類

2,配置文件

 

<!-- 目標target -->

<bean id="aoptest01"class="cmo.demo.aop.OrderService"></bean>

<!-- 通知advice -->

<bean id="aopadvice"class="cmo.demo.aop.AOPAdvice"></bean>

<!-- 定義切點,用兩種方式 -->

<!-- 第一種,用對應方法名來操作 -->

<bean id="aopOpthin"class="org.springframework.aop.support.NameMatchMethodPointcut">

<property name="mappedNames">

<list>

<value>addTest</value>

<value>updateTest</value>

</list>

</property>

</bean>

<!-- 第二種,用表達式來限制方法的操作 -->

<!-- <beanid="aopOpthin" class="org.springframework.aop.support.JdkRegexpMethodPointcut">

<propertyname="pattern" value=".*Test"></property>

</bean>

 -->

 

<!-- 定義切面,切點+通知 -->

<bean id="PointCut"class="org.springframework.aop.support.DefaultPointcutAdvisor">

<property name="advice"ref="aopadvice"></property>

<property name="pointcut"ref="aopOpthin"></property>

</bean>

 

<!-- 代理動態proxy,目標對象,切面,代理對象-->

<bean id="proxy"class="org.springframework.aop.framework.ProxyFactoryBean">

<property name="target"ref="aoptest01"></property>

<property name="interceptorNames"value="PointCut"></property>

<property name="proxyInterfaces"value="cmo.demo.aop.IOrderService"></property>

</bean>

</beans>


 

 

重點注意:生成動態標籤中的id,要設置成和test測試類的,通    @Autowired

    @Qualifier("proxy")

    public IOrderService orderService;

來使用代理對象

 



關於切點表達式寫法

1.     execution(public * *()) 所有的public的方法

2.     execution(*cn.itheima.aop.*(..)) 所有的aop包下的所有類的方法(不包含子包)

3.     execution(*cn.itheima.aop..*(..)) 所有的aop包及其子包下的所有類的方法

4.     execution(*cn.itheima.aop.IOrderService.*(..)) IOrderService接口中定義的所有方法

5.     execution(*cn.itheima.aop.IOrderService+.*(..)) 匹配實現特定接口所有類的方法

6.     execution(*save*(..)) 區配所有的以save開頭的方法




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章