- 博客(5)
- 收藏
- 关注
转载 CgLib代理的底层实现
CGLib采用了非常底层的字节码技术,使用字节码处理框架ASM,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现Spring AOP的基础。CGLib创建的动态代理对象性能比JDK创建的动态代理对象的性能高不少,但是CGLib在创建代理对象时所花费的时间却比JDK多得多,所以对于单例的对象,因为...
2018-03-16 16:43:52 1159
转载 JDK代理和CGLIB代理的区别
JDK动态代理只能对实现了接口的类生成代理,而不能针对类CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法(继承)(1)当Bean实现接口时,Spring就会用JDK的动态代理(2)当Bean没有实现接口时,Spring使用CGlib是实现(3)可以强制使用CGlib(在spring配置中加入<aop:aspectj-autoproxy proxy-target-cla...
2018-03-16 16:28:37 3960
转载 Spring AOP的实现原理
AOP(Aspect Orient Programming),我们一般称为面向切面编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和Spring AOP的实...
2018-03-16 16:25:50 132
转载 mysql和java中实现悲观锁和乐观锁
mysql乐观锁实现: 使用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。何谓数据版本?即为数据增加一个版本标识,一般是通过为数据库表增加一个数字类型的 “version” 字段来实现。当读取数据时,将version字段的值一同读出,数据每更新一次,对此version值加一。当我们提交更新的时候,判断数据库表对应记录的当前版本信息与第一次取出来的version值进行比对,...
2018-03-16 15:28:06 6620
原创 一个自己实现的rpc框架
整合spring配置文件头部加入rpc的namespace;服务端:服务端标签:<rpc:protocol port="8888"/><rpc:registry address="ifcc:2181,coco:2181,cc:2181" protocol="zookeeper"/><rpc:service interface="edu.southeast.rpctes.
2018-03-06 09:55:42 393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人