本文共 2618 字,大约阅读时间需要 8 分钟。
package aop.beannameauto;public class Waiter { public void greet(String name) { System.out.println("Waiter.greet()"+name); }}
package aop.beannameauto;import java.lang.reflect.Method;import org.springframework.aop.MethodBeforeAdvice;public class GreetB implements MethodBeforeAdvice{ @Override public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable { // TODO Auto-generated method stub String name= (String) arg1[0]; System.out.println("GreetB.before()"+name); } }
测试类:
package aop.beannameauto;import static org.junit.Assert.*;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class BeanTest { @Test public void test() { ApplicationContext context = new ClassPathXmlApplicationContext("aop/beannameauto/beans.xml"); Waiter waiter = (Waiter) context.getBean("waiter"); waiter.greet("11"); }}
package aop.defaultauto;import static org.junit.Assert.*;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class BeanTest { @Test public void test() { ApplicationContext context = new ClassPathXmlApplicationContext("aop/defaultauto/beans.xml"); Waiter waiter = (Waiter) context.getBean("waiter"); waiter.greet("11"); }}
package aop.aspect;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;@Aspectpublic class GreetB { @Before("execution(* greet(..))") public void before() { System.out.println("GreetB.before()"); }}
package aop.aspect;import static org.junit.Assert.*;import org.junit.Test;import org.springframework.aop.aspectj.annotation.AspectJProxyFactory;public class AspectTest { @Test public void test() { Waiter waiter = new Waiter(); AspectJProxyFactory factory = new AspectJProxyFactory(); factory.setTarget(waiter); factory.addAspect(GreetB.class); Waiter waiter2 = factory.getProxy(); waiter2.greet("11"); }}
转载地址:http://avcqb.baihongyu.com/