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