摘要:
简介:MetaClass是Mybatis对类级别的元信息的封装和处理,通过与属性工具类的结合, 实现了对复杂表达式的解析,实现了获取指定描述信息的功能 理解了这个方法(递归, 该类中有很多类似的), 就可以很好的对这个类进行理解, 以查找(richType.richProperty)为例: 退出的条 阅读全文
摘要:
本篇主要介绍mybatis反射工具中用到的三个属性工具类:PropertyTokenizer、PropertyNamer、PropertyCopier。 PropertyTokenizer: 主要用来解析Mybatis使用过程中遇到的类似"order[0].items[0].name"这种由"."和 阅读全文
摘要:
ObjectFactory官方简介:MyBatis每次创建结果集对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以通 阅读全文
摘要:
简介:TypeParameterResolver是一个工具类,提供一系列的静态方法,去解析类中的字段、方法返回值、方法参数的类型。 在正式介绍TypeParameterResolver之前,先介绍一个JDK提供的接口Type,因为TypeParameterResolver的实现会涉及到它的实现;它是 阅读全文
摘要:
java安全管理器类SecurityManager简单剖析: javadoc介绍: SecurityManager应用场景: 当运行未知的Java程序的时候,该程序可能有恶意代码(删除系统文件、重启系统等),为了防止运行恶意代码对系统产生影响,需要对运行的代码的权限进行控制,这时候就要启用Java安 阅读全文
摘要:
说明:Reflector是Mybatis反射工具的基础,每个Reflector对应一个类,在Reflector中封装有该类的元信息, 以及基于类信息的一系列反射应用封装API ReflectorFactory接口主要实现了对Reflector对象的创建和缓存,Mybatis为该接口提供了仅有的一个实 阅读全文
摘要:
解析器模块,核心类XPathParser 阅读全文
摘要:
Mybatis整体架构视图: 接 口 层 SqlSession (定义了Mybatis暴露给应用程序调用的API) 核 心 处 理 层 配置解析 (加载核心配置、映射配置、 mapper接口注解信息, 解析后形成的对象 保存至Configuration对象) SQL解析 (动态sql拼接) SQL执 阅读全文
摘要:
JDK动态代理使用: 使用JDK动态代理步骤:①创建被代理的接口和类; ②创建InvocationHandler接口的实现类,在invoke方法中实现代理逻辑; ③通过Proxy的静态方法newProxyInstance( ClassLoaderloader, Class[] interfaces, 阅读全文
摘要:
什么是代理? 代理模式是指给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。这种模式有什么用呢?它可以在原对象的基础上增强原对象的功能,比如在原对象调用一个方法的前后进行日志、事务操作等。Spring AOP就使用了代理模式。 了解代理入口: 阅读全文