自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 第二章 基础支持层(5) 资源加载 ClassLoaderWrapper

用5个类加载器一个个查找资源,只要其中任何一个找到,就返回package org.apache.ibatis.io;import java.io.InputStream;import java.net.URL;/** * A class to wrap access to multiple class loaders making them work as one * * @a...

2018-07-11 08:24:28 933

原创 MyBatis源码解析----parsing包

0.先来看看Mybatis的配置文件mybatis-config.xml中<dataSource type="POOLED"> &amp

2018-06-19 13:29:37 398

原创 Mybatis XML 解析---parsing包---XNode

一.XML解析: XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。 XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础...

2018-06-17 14:42:54 1142

原创 源码分析--BlockingCache

BlockingCache 是阻塞版本的缓存装饰器,它会保证只有一个线程到缓存中查找指定的Key对应的数据。BlockingCache 中各个字段的含义如下:private long timeout;//阻塞超时时长private final Cache delegate;//被修饰的底层Cache对象private final ConcurrentHashMap<Object,...

2018-06-09 14:21:49 332

原创 Java 包解析:java.lang.instrument

package java.lang.instrument //这个类作为Instrumentation.redefineClasses方法的参数 //用于将需要重新定义的类绑定到新的字节码中public final class ClassDefinition { //需要重新定义的类 private final Class<?> mClass; ...

2018-06-08 09:02:49 1274

原创 《Effective Java 实战-第二条:遇到多个构造器参数时要考虑用构建器》

重叠构造器模式可行(该模式构建对象时非常常见,参数较少时,使用方便,但可选的参数多起来后,构造器相互调用非常麻烦),但是有很多可选参数时,构造器的个数会很多,使得代码难以阅读。静态工厂和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数。遇到许多构造器参数的时候,还有第二种代替方法,即JavaBeans模式,在这种模式下,调用一个无参构造器来创建对象,然后调用setter方法来设置每个必...

2018-06-02 17:00:24 241

原创 《Mybatis技术内幕--缓存的Key,CacheKey》

疑问: 为什么需要一个复杂的对象表示缓存项的key?通常来说表示一个对象的key可以用一个String对象,为什么不可以吗?在cache中唯一确定一个缓存项需要使用缓存项的key,Mybatis中因为涉及到动态SQL等多方面因素,其缓存项的key不等仅仅通过一个String表示,所以MyBatis 提供了CacheKey类来表示缓存项的key,在一个CacheKey对象中可以封装多个...

2018-05-30 23:38:47 4580

原创 Mybatis 源码解析 Cache包

public interface Cache { String getId(); void putObject(Object key, Object value); Object getObject(Object key); Object removeObject(Object key); void clear(); int getSize(); Read...

2018-05-25 19:44:30 233

原创 适配器模式在mybatis中的实践

MyBatis日志系统Mybatis 可以集成多种第三方日志系统:如log4j,log4j2,commons-logging,slf4j等等,日志模块提供的接口各不相同,mybatis使用适配器模式,为每一个日志系统实现一个适配器。 需要适配的接口://mybatis 的4种日志级别已经够用了!public interface Log { boolean isDebugEnabled()

2018-05-10 13:01:18 756

原创 《mybatis 技术内幕之 2.4 日志模块》:org.apache.ibatis.log.LogFactory

LogFactory 源码解析

2018-05-08 23:49:03 3104

原创 《mybatis 技术内幕之 2.2.4 Property工具集》:org.apache.ibatis.reflection.property

PropertyTokenizer问题:怎么解析表达式:orders[0].items[0].namepublic class PropertyTokenizer implements Iterable<PropertyTokenizer>, Iterator<PropertyTokenizer> { private String name;//当前表达...

2018-05-07 00:09:44 471

原创 Redis 实战------java版本代码优化

Redis 实战—代码优化—-代码清单4-5 listItem()函数原版代码

2017-11-06 20:03:54 873

原创 《高性能MySQL》必读章节 之 建表优化

在数据库的性能调优的过程中会涉及到很多的知识,包括字段的属性设置是否合适,索引的建立是否恰当,表结构涉及是否合理,数据库/操作系统 的设置是否正确…..其中每个topic可能都是一个领域。在我看来,在数据库性能提升关键技术中,对字段的优化难度相对较低且对性能的影响也非常的大。由于MySQL支持的数据类型比较多,且每个类型都有其独特的特性,但是有时候在选择一个具体的数据类型时,往往都是随意的选择一个能

2017-07-08 11:44:41 490

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除