在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