摘要:
//如何获取Class的实例(4种) @Test public void test4() throws ClassNotFoundException{ //1.调用运行时类本身的.class属性 Class clazz1 = Person.class; System.out.println(clazz1.getName()); Class clazz2 = String.class; System 阅读全文
摘要:
1、简介 Spring声明式事务的具体实现方式是动态决定的,与具体配置、以及事务代理对象是否实现接口等有关。 2、使用JDK动态代理的情况 在满足下面两个条件时,Spring会选择JDK动态代理作为声明式事务的实现方式。 (1)事务代理类必须实现接口且不能显式继承父类(Object这个父类不算)。 阅读全文
摘要:
原理区别: java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。 而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。 1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理 阅读全文