AOP 那些事三

在spring實現spring

import org.aopalliance.intercept.MethodInvocation;

/**
 * Created by dingshuangkun on 2018/1/9.
 */
public class GreetingAroundAdvice implements MethodInterceptor {

    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable {
        before();
        Object obj =  invocation.proceed();
        after();
        return obj;
    }

    public void before(){
        System.out.println("----before----");
    }
    public void after(){
        System.out.println("----after------");
    }
}
<bean id="greetingImpl" class="aop.impl.GreetingImpl"/>
<bean id="greetingAroundAdvice" class="aop.GreetingAroundAdvice"/>
<bean id="greetingProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="interfaces" value="aop.Greeting"/>
    <property name="target" ref="greetingImpl"/>
    <property name="interceptorNames" >
        <list>
            <value>greetingAroundAdvice</value>
        </list>
    </property>
</bean>

測試app

public static void main(String[] arges){
    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    Greeting greeting =(Greeting) ac.getBean("greetingProxy");
    greeting.sayHello("ding");
    greeting.sayNiHao("dingding");
}

------before-------
hello ding
------after--------
------before-------
niHao dingding
------after--------ide

相關文章
相關標籤/搜索