public interface ISomeService {
public void some();
}
public class MyAdvice implements MethodBeforeAdvice{
public void before(Method method, Object[] objects, Object o) throws Throwable {
System.out.println("这是前置MethodBeforeAdvice");
}
}
public class MyAfter implements AfterReturningAdvice {
public void afterReturning(Object o, Method method, Object[] objects, Object o1) throws Throwable {
System.out.println("这是后置");
}
}
<?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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
">
<!--属性-->
<bean id="some" class="cn.springAop.SomeService"></bean>
<!--前置-->
<bean id="advice" class="cn.springAop.MyAdvice"></bean>
<!--后置-->
<bean id="after" class="cn.springAop.MyAfter"></bean>
<bean id ="DaiLi" class="org.springframework.aop.framework.ProxyFactoryBean">
<!--需要增强的对象-->
<property name="target" ref="some"></property>
<!--需要拦截的方法-->
<property name="interceptorNames" value="advice,after"></property>
<!--加上下面 属性可以使 成为 CgLib 动态带来-->
<property name="proxyTargetClass" value="true"></property>
</bean>
</beans>