- 博客(11)
- 收藏
- 关注
原创 可伸缩服务架构:框架与中间件读书笔记:dubbo实现原理
前言:在很久之前就对rpc(远程过程调用)框架非常感兴趣,然后主动去学习了阿里开源框架dubbo,最近阿里也是重启了dubbo的更新,dubbo又重新散发出活力。当然学习首先是看dubbo官方文档,官方文档有非常详细的功能说明以及使用方法,对于使用dubbo的开发者已经足够了。最近在实习的公司中也有使用到dubbo来编写接口,我辛辛苦苦学习的dubbo框架终于有了用武之地。但我觉得还不够,...
2018-08-25 23:57:15 1126
原创 为什么最好的单例模式是枚举单例?
前言:单例模式是最常见的设计模式了,无论在面试还是真正的工作时也会大量遇到单例模式,单例模式有懒汉饿汉,双重检查锁,静态内部类等等的实现方式,但在Effective Java一书中推荐使用枚举来实现单例模式,那为什么要使用枚举类来实现单例模式呢?枚举单例模式代码:public enum Singleton { INSTANCE; public void wha...
2018-08-25 22:03:41 2292
原创 java Serializable时两个类同名内部却不一样会发生什么问题?
1.serialVersionUID不一样时,产生InviladClassException错误。2.serialVersionUID一样时,内部的变量类型与变量名一致,但有变量缺漏,比如A类有int a,int b,B类只有int a,这种情况序列化不会报错,缺漏的字段会有默认值,int为0,对象引用为null。3.serialVersionUID一样时,内部的变量类型与变量名不一致,比...
2018-08-18 12:23:11 1040
原创 Mybatis技术内幕读书笔记(七)MappedStatement的解析
总结:MappedStatement包含了id,sqlSource和sqltype,SqlSource包含了一个dynamiccontext和sqlnode,dynamiccontext里面有sqlbuilder,然后mybatis根据xpath解析xm与用户参数来构建sqlnode的树状结构,sqlnode解析完成后会把解析...
2018-08-11 09:36:46 3483
原创 Mybatis技术内幕读书笔记(五)cache模块
My Batis 中缓存模块相关的代码位于cache 包下, 其中Cache 接口是缓存模块中最核心的接口,它定义了所有缓存的基本行为。Cache 接口的定义如下:PerpetualCache:PerpetualCache 在缓存模块中扮演着ConcreteComponen t 的角色,其实现比较简单,底层使用HashMap 记录缓存项,也是通过该HashMap 对象的方法实现的C...
2018-08-08 19:04:39 215
原创 Mybatis技术内幕读书笔记(四)binding模块(动态代理Mapper)
前言:在iBatis ( MyBatis 的前身)中,查询一个Blog 对象时需要调用SqlSession.queryForObject(”selectBlog ” ,blogld )方法。其中, SqlSession . queryForObject ()方法会执行指定的SQL 语句进行查询井返回一个结果对象, 第一个参数“ selectBlog"指明了具体执行的SQL 语句的id ,该SQ...
2018-08-08 16:35:28 268
原创 Mybatis技术内幕读书笔记(三)Mybatis的连接池原理(PooledDataSource)
前言: 了解JDBC 编程的读者知道,数据库连接的创建过程是非常耗时的,数据库能够建立的连接数也非常有限,所以在绝大多数系统中,数据库连接是非常珍贵的资源,使用数据库连接池就显得尤为必要。使用数据库连接池会带来很多好处,例如,可以实现数据库连接的重用、提高响应速度、防止数据库连接过多造成数据库假死、避免数据库连接泄露等。数据库连接池在初始化时, 一般会创建一定数量的数据库连接并添加到连接池中...
2018-08-08 14:14:40 2592
原创 Mybatis技术内幕读书笔记(二)JDBC反射com. mysql.jdbc.Driver的原理
前言:熟悉JDBC 的读者知道,创建数据库连接之前, 需要先向DriverManager 注册JDBC 驱动类。我们以MySQL 提供的JDBC 驱动为例进行简单分析,com. mysql.jdbc.Driver中有如下静态代码块:Driver Manager 中定义了registeredDrivers 字段用于记录注册的JDBC 驱动,定义如下: 回到MyBatis 中U...
2018-08-08 13:57:44 253
原创 Mybatis技术内幕读书笔记(一)Tomcat的类加载器(Classloader)
前言:我也不知道为什么一本Mybatis的书会有Tomcat的相关内容,不过这是个知识点,需要好好记录。什么是类加载器:Java 虚拟机中的类加载器( ClassLoader )负责加载来自文件系统、网络或其他来源的类文件。Java 虚拟机中的类加载器默认使用的是双亲委派模式,其中有三种默认使用的类加载器,分别是Bootstrap ClassLoader 、Extension Clas...
2018-08-08 13:09:41 340
原创 mysql:在执行左右连接时加上and条件会发生什么?
前言:很久之前有想过在执行左右连接时加上and条件会发生什么现象?今天灵光一闪想马上做做实验来验证我自己的想法。结果如下:可以看出,and判断条件为假时,左右连接的主方都不会为null,而从方会被置为null。大功告成!...
2018-08-04 22:31:08 1131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人