Spring AOP增強小例子
阿新 • • 發佈:2018-11-27
[java]
view plain
copy
[java] view plain copy
[java] view plain copy
[java] view plain copy
- public interface ISomeService {
- public void some();
- }
[java] view plain
- public class MyAdvice implements MethodBeforeAdvice{
- public void before(Method method, Object[] objects, Object o) throws Throwable {
- System.out.println("這是前置MethodBeforeAdvice"
- }
- }
[java] view plain copy
- public class MyAfter implements AfterReturningAdvice {
- public
- System.out.println("這是後置");
- }
- }
[java] view plain copy
- public class SomeService implements ISomeService{
- public void some(){
- System.out.println("這是測試 bean 代理");
- }
- }
- <?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>