- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 mybatis之Property工具集
PropertyTokenizer 该类主要是解析一些稍微复杂的表达式 orders[O].item[0].name这种表达式 /** * @author Clinton Begin * 属性标记器 */ /** * 假设传入的为student[sId].name * 则各个属性得到以下结果 * * 该属性标记器只能处理一级,即点后面的都作为children */ public class PropertyTokenizer implements Iterator<Propert
2021-03-03 09:46:34
3197
原创 mybatis之Reflector和ReflectorFactory
Reflector和ReflectorFactory ReflectorFactory /** * 工厂接口的默认实现 */ public class DefaultReflectorFactory implements ReflectorFactory { //该字段决定了是否对开启对Reflector的缓存 private boolean classCacheEnabled = true; //使用线程安全的map对Reflector对象进行缓存 private final Conc
2021-03-03 09:45:54
327
原创 mybatis之TypeParameterResolver工具类
TypeParameterResolver 它是一个工具类,提供了一系列静态 方法来解析指定类中的宇段、方法返回值或方法参数的类型。 TypeParameterResolver 中各个静 态方法之间的调用关系大致如图 2-11 所示,为保持清晰,其中递归调用没有表现出来,在后面 的代码分析过程中会进行强调。 public class TypeParameterResolver { /** * @return The field type as {@link Type}. If it
2021-03-03 09:45:09
374
原创 mybatis之Type类
Type类 type类是所有类型的父接口,它由四个子接口和一个实现类 下面来看这些子接口和子类所代表的类型。 Class类比较常见,它表示的是原始类型。Class类表示的是JVM中的一个类或者接口。每个java类在JVM中都表现为一个Class对象。在程序中可以通过类名.class或者对象.getClass()或者是Class.forName(全限定类名)来获取Class对象。数组也也被映射为Class对象,所有元素类型相同并且维数相同的数组都共享一个Class对象。 Parameteri
2021-03-03 09:42:00
1106
原创 mybatis之Log接口及其实现类
Log接口及其实现类 public interface Log { boolean isDebugEnabled(); boolean isTraceEnabled(); void error(String s, Throwable e); void error(String s); void debug(String s); void trace(String s); void warn(String s); } public final class LogF
2021-03-03 09:38:24
847
原创 mybatis之ResolverUtil工具类
ResolverUtil工具类 * ResolverUtil 用来定位某个class路径下满足任意条件的类们。通常的筛选条件是: * 类继承了某个接口 * 实现了某个类 * 类拥有可定的注解 * 基于Test类可以用来判断某各类是否满足这些条件 public class ResolverUtil<T> { /* * An instance of Log to use for logging in this class. */ private static f
2021-03-03 09:37:30
444
原创 mybatis之日志系列适配器
适配器模式 适配器其实很简单,就是实现类Adaptee无法实现Target的接口,所有封装了一个中间层Apapter适配器,该适配器实现了接口Target并且把实现类Adaptee作为类参数。Apapter在实现接口Target的方法是实际上是使用了参数Adaptee进行实现。 public interface Target { void 吃饭(); } public class Adaptee { void 吃大米饭() { System.out.println("吃大
2021-03-03 09:34:33
213
原创 mybatis值VFS虚拟文件类
VFS接口 private static final Log log = LogFactory.getLog(VFS.class); /** 记录 MyBatis 供的两个 VFS 实现类. */ public static final Class<?>[] IMPLEMENTATIONS = { JBoss6VFS.class, DefaultVFS.class }; /** 记录 用户自定义 VFS 实现类 VFS addimplClass ()方法会将指定的 VFS 实
2021-03-03 09:31:30
589
原创 mybatis源码分析之XMLConfigBuilder对XML文件的解析
XMLConfigBuilder对XML文件的解析 public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) { try { XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties); return build(parser.p
2021-02-25 09:41:03
346
2
原创 mybatis源码分析之XMLConfigBuilder创建过程2
XMLConfigBuilder创建过程2 Configuration的初始化过程 Configuration作为一个配置类对象,为许多类所共享(许多类的参数就是他),因此它是一个全局共享的配置类。 Configuration类在初始化过程中初始化了许多工具类,注册中心等等,这些类主要是为了以后的应用。 下边是几个Configuration类主要的参数: // <environment>节点的信息 protected Environment environment; // 以下为<
2021-02-25 09:40:30
278
1
原创 mybatis源码分析
XMLConfigBuilder的创建过程 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) { try { XMLConfigBuilder parser = n
2021-02-25 09:40:04
227
1
原创 mybatis源码分析
Mybatis的初始化过程 1 mybatis使用代码 mybatis官网文档 主要流程图 public class MyBatisMain { public static void main(String[] args) { // 第一阶段:MyBatis的初始化阶段,配置各项属性 String resource = "conf/mapperTest.xml"; // 得到配置文件的输入流 InputStream input
2021-02-25 09:39:09
151
原创 浅析URL
URL包含什么 协议+域名或IP+端口+路径+查询字符串+锚点 此处省略了端口,https默认端口443 协议:HTTP或其他 IP IP:Internet Protocol,主要约定了两件事,一是如何认定位一台设备,二是如何封装数据报文,以跟其他设备交流,主要关心第一件事 只要你在互联网中,就至少有一个独特的IP IP分为内网和外网,外网IP地址由电信提供,需要购买,内网是由路由器提供,内网可...
2020-05-06 13:25:33
329
原创 HTML常用标签
HTML常用标签详解 习了有关html各种标签的用法,现总结一下在HTML中常用的标签及其属性。 1.HTML5头部结构 【DOCTYPE html】 声明文档类型为HTML5文件。 文档声明在HTML5文档必不可少,且必须放在文档的第一行。 【meta标签】 1.charset属性:单独使用,设置文档字符及编码格式。 写法: 常见的中文编码格式: B-2312:国标码,简体中文 GBK:扩展的国...
2020-05-04 21:11:39
354
原创 java多线程(1)
JAVA多线程初 1为什么要使用多线程 为了解决负载均衡问题,充分利用CPU资源.为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.为了处理大量的IO操作时或处理的情况需要花费大量的时间等等,比如:读写文件,视频图像的采集,处理,显示,保存等 多线程的好处: 1.使用线程可以把占据时间长的程序中的任务放到后台去处理 2.用户界面更加吸引人,这样比如用户点击了一个按钮去触发某件...
2020-03-09 10:34:47
227
转载 Collection体系初阶学习
Collection体系 在学习Collection体系的时候首先应该从整体看: 知识点补充: 存放数据的容器: 数组: 1: 数组的长度固定: Student stu[] = new Student[20]; new Student(“lisi”,21); 数组扩容: (1)创建一个临时的数组: (2)将数组的内容copy到 临时数组。 (3)原来的数组扩容: (4)把临时数组当中的内容cop...
2020-02-19 15:48:53
223
转载 java之List源码分析
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...
2019-01-17 10:37:04
231
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅