Spring aop攔截器

今天加班,搞定了用spring攔截器捕獲其他bean異常。功能比較簡單,主要是之前對spring攔截器不熟悉,導致出現問題搞了半天才解決。

新建一個自定義的Advice類MyAdvice實現ThrowsAdvice接口的afterThrowing方法。然後再applicationContext.xml中配置攔截器。

<bean id="myadvice" class="com.test.advice.MyAdvice"></bean>
 <bean name= "springAOPAutoProxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
	<property name= "beanNames" >
	<value>mybean</value>
	</property>
	<property name= "interceptorNames" >
		<list>
		<value>myadvice</value>
		</list>
	</property>
</bean>

運行的時候出現“no matching editors or conversion strategy found ”錯誤。主要是因爲Spring在轉換時,主要是將代理類轉換成接口,而不能轉換成實際類。而要攔截的對象mybean是普通類,沒有實現任何接口。

爲了解決這個問題,又不想再定義一個接口,需要在裏面增加springAOPAutoProxy裏面增加多一個屬性說明代理類非接口類。

<property name="proxyTargetClass" >
	<value>true</value>
</property>
增加上面參數後,又提示“Cannot proxy target class because CGLIB2 is not available“。這是由於CGLIB包沒有包含進來,只要將對應的CGLIB Jar包放入項目就可以了。


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