嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
AOP切片的简单实现
* 使用JDK的动态代理实现了简单地AOP思想编程
* 使用反射结合JDK动态代理实现了类似于Spring框架的简单“ @xxx(xx="xxxx") ”的数据注入
package proxy;
import java.lang.reflect.Method;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import proxy.imp.AOPMethod;
import proxy.imp.AnimalInterface;
@RunWith(BlockJUnit4ClassRunner.class)
public class AOPTest {
public static void main(String[] args) {
AnimalInterface dog = AnimalFactory.getAnimal(DogImp.class, new AOPMethod() {
// 这里写方法执行前的AOP切入方法
public void before(Object proxy, Method method, Object[] args) {
if (method.getName().equals("getProperty")) {
System.err.println("成功拦截" method.getName() "方法,启动");
}
}
// 这里系方法执行后的AOP切入方法
public void after(Object proxy, Method method, Object[] args) {
if (method.getName().equals("getProperty"))
System.err.println("成功拦截" method.getName() "方法,结束");
}
});
dog.say();
String name1 = "我的名字是" dog.getName();
System.out.println(name1);
dog.setName("二狗子");
String name2 = "我的名字是" dog.getName();
System.out.println(name2);
dog.getProperty();
}
}