spring aop xml配置开发开发

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
	
	<bean id="producte" class="com.swt.dao.impl.ProductImpl"></bean>
	<bean id="myAdvice" class="com.swt.aspect.MyAdvice"></bean>
	
	<!-- 通过aop配置完成目标泪产生代理 -->
	<aop:config>
		<!-- 配置切入点 -->
		<aop:pointcut id="pointcut1" expression="execution(* com.swt.dao.impl.ProductImpl.add(..))"></aop:pointcut>
		<aop:pointcut id="pointcut2" expression="execution(* com.swt.dao.impl.ProductImpl.find(..))"></aop:pointcut>
		<aop:pointcut id="pointcut3" expression="execution(* com.swt.dao.impl.ProductImpl.delete(..))"></aop:pointcut>
		<aop:pointcut id="pointcut4" expression="execution(* com.swt.dao.impl.ProductImpl.update(..))"></aop:pointcut>
		
		<!-- 配置切面 =多个通知和多个切入点的组合-->
		<aop:aspect ref="myAdvice">
			<!-- 前置通知 -->
			<aop:before method="checked" pointcut-ref="pointcut1"></aop:before>
			
			<!--后置通知  -->
			<aop:after-returning method="after" pointcut-ref="pointcut2" returning="result"/>
			
			<!-- 环绕通知 :可以阻止目标方法的运行-->
			<aop:around method="around" pointcut-ref="pointcut3" />
			
			<!-- 异常抛出  -->
			<aop:after-throwing method="afterThrowing" pointcut-ref="pointcut2" throwing="e"/>
			<!-- 最终通知 -->
			<aop:after method="aftering" pointcut-ref="pointcut4"/>
			
		</aop:aspect>
			
	</aop:config>
</beans>

猜你喜欢

转载自blog.csdn.net/qq_41679695/article/details/84104506
今日推荐