黑马程序员 java高新技术之代理和AOP原理
2013-08-05 21:04
555 查看
---------------------------------------------------------------- android培训、java培训、期待与您交流! -----------------------------------------------------------代理AOP(Aspect oriented program)面向方面的编程
代理是为已实现的类增加日志,事务,系统信息等。代码位置:
1,目标方法前
2,目标方法后
3,目标方法前后都有
4,catch中
利用动态类生成Collection对象
Class classProxy1=Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class);
System.out.println(classProxy1.getName());
System.out.println("--------new Instance-----------");
Constructor conMethod=classProxy1.getConstructor(InvocationHandler.class);
Collection collection=(Collection)conMethod.newInstance(new InvocationHandler()
{
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
// TODO Auto-generated method stub
return null;
}
});
System.out.println(collection);
//System.out.println(collection.isEmpty());
collection.clear();
//方法二
System.out.println("--------new Instance scheme2-----------");
Collection collection2=(Collection)Proxy.newProxyInstance(
Collection.class.getClassLoader(),
new Class[]{Collection.class},
new InvocationHandler()
{
ArrayList al=new ArrayList();
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
long beginTime=System.currentTimeMillis();
Object obj=method.invoke(al, args);
long endTime=System.currentTimeMillis();
System.out.println(method.getName()+": running time----"+(endTime-beginTime));
return obj;
}
});
collection2.add("aaa");
collection2.add("bbb");
collection2.add("ccc");
System.out.println(collection2.size());
for(Object col: collection2)
{
System.out.println(col);
}
代理原理:
客服端调用代理程序,代理调用InvocationHandler接口,而InvocationHandler调用目标程序。
aop框架编写原理:
由BeanFactory创建Bean对象,在创建时使用配置文件,根据配置文件决定返回的是那种类型的实例对象。
配置文件规范:(#表示注释)
xxx=java.util.ArrayList
#xxx=cn.itcast.day02.aopframework.ProxyFactoryBean
xxx.advice=cn.itcast.day02.MyAdvice
xxx.target=java.util.ArrayList
此配置文件返回的是ArrayList对象,.advice为getProxy的一个参数,表示加在已编写好的程序广告对象
.target为getProxy的参数用于决定返回的什么类型的对象。
---------------------------------------------------------------- android培训、java培训、期待与您交流! ----------------------------------------------------------------------------------------
相关文章推荐
- 黑马程序员_高新技术四(Java动态代理、AOP简单框架)
- 黑马程序员_Java高新技术(3)动态代理和AOP技术
- 黑马程序员_高新技术5(动态代理类,代理类的作用与原理,AOP框架应用)
- 黑马程序员-java高新技术-代理和类加载器
- 分析动态代理Java JDK 动态代理(AOP)使用及实现原理分析
- 黑马程序员_java高新技术—类加载器&&动态代理
- 黑马程序员_java高新技术之动态代理
- 黑马程序员-JAVA 高新技术(代理)
- Spring 4 学习笔记4:Java动态代理(Spring AOP原理)
- 黑马程序员——JAVA高新技术---反射--概述,类中构造方法、字段、方法和数组的反射,框架原理,JavaBean简述
- 黑马程序员---张老师高新技术之类加载器.代理与AOP
- 黑马程序员_java高新技术—类加载器&&动态代理
- Java深入(高新技术)(八):代理技术AOP
- 【黑马程序员】张孝祥Java高新技术_类加载器、代理
- 黑马程序员_java高新技术总结【3】(内省、注解、代理)
- 黑马程序员_Java高新技术_动态代理技术的深入理解
- 黑马程序员_高新技术五(动态代理类,代理类的作用与原理,AOP框架应用)
- 黑马程序员 java高新技术 代理
- 黑马程序员——java高新技术-jdk1.5新特性,注解,类加载器,代理