JDK动态代理 利用拦截器加上反射机制生成一个实现代理接口的匿名类,在调用具体方法时,调用InvocationHandler来处理 JDK动态代理只需要JDK环境就可以进行代理,流程为: 实现InvocationHandler 使用Proxy.newProxyInstance产生代理对象 被代理的对 ...
分类:
其他好文 时间:
2019-05-02 11:57:26
阅读次数:
139
反射 https://blog.csdn.net/ritterliu/article/details/7764849 反射:反射属于动态编译,就是在编译期并不确定是哪个类被加载了,而是在程序运行的时候才加载,所以我们可以动态的解剖一个类,获取这个类的任意属性和方法。 1.获取类对象 类名.class ...
分类:
其他好文 时间:
2019-04-22 18:08:59
阅读次数:
132
@Configuration 表示该类为“配置类”,可替换xml配置文件。与@Component不同的是,@Configuration会生成CGLIB代理class。 @Bean 主要定义在@Configuration注释的类中的方法上,而这些方法将会被AnnotationConfigApplica ...
分类:
编程语言 时间:
2019-04-20 21:20:10
阅读次数:
204
注意:这边目标类并没有实现接口,所以切面类进行增强的时候是通过cglib动态代理的方式进行方法的扩展增强! 注解式aop要配置上这句话,pom文件所引入的jar包与上一篇文章一致 ...
分类:
编程语言 时间:
2019-04-14 14:20:09
阅读次数:
129
Spring框架中2种生成代理对象的方法 Jdk Proxy基于接口生成代理对象,只能赋值给接口的引用(默认使用jdk)。 Spring进一步封装 CGLIB,基于实现类生成代理对象,既可以赋值给接口的引用,也可以赋值给实现类的引用 JDK提供的Proxy,和spring进一步封装的CGLIB。二者 ...
分类:
编程语言 时间:
2019-04-10 20:26:01
阅读次数:
258
前言 设计模式有很多,但设计模式的目的是一致的,都是为了提升代码的可读性和可扩展性。设计模式都遵循一些基本的原则,设计模式是为了遵循这些原则而创造的工具。 - 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。这一点是说,如果有一些类过于臃肿,承担了过多的职责,就应当分解他。 - 开放-封闭 ...
分类:
其他好文 时间:
2019-04-07 14:28:58
阅读次数:
263
一、原理区别: java动态代理是利用反射机制生成一个实现代理接口的代理类,在调用具体方法前调用InvokeHandler来处理。 而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。 1、如果目标对象实现了接口,默认情况下会采用JDK的动态 ...
分类:
其他好文 时间:
2019-04-06 18:51:38
阅读次数:
132
设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。今天,螃蟹在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想理念,才能在工作学习中运用到“无形”。Spring作为业界的经典框架,无论是在架构设计方面... ...
分类:
编程语言 时间:
2019-04-06 16:55:53
阅读次数:
128
本节我们从ProxyFactory开始分析。该类有几个比较重要的方法——addAdvice、addAdvisor、getProxy,其中最后一个方法是我们本节的重点。前两个方法都是向ProxyFactory中成员变量advisors中加入成员,以便后面调用方法时实现拦截。 这里,我们首先来了解前两个 ...
分类:
编程语言 时间:
2019-04-05 23:58:52
阅读次数:
280
方法区的垃圾回收,即使永生代的垃圾收集:主要回收两部分内容,废弃的常量和无用类、 回收废弃的常量与Java堆中的对象非常类似,以常量池中字面量的回收为例:假如一个字符串"abc"已经进入了常量池中,但是当前系统没有任何一个String对象的是叫做abc的,换句话说就是没有任何STring对象引用常量 ...
分类:
其他好文 时间:
2019-04-01 00:35:22
阅读次数:
175