摘要:
ListableBeanFactory#getBeanNamesForType(Class<?>) 这个方法的逻辑在对 FactoryBean 进行判断时,会使用 FactoryBean 的生成的对象的类型进行判断 BD 的属性数据 AttributeAccessor.getAttribute(Fa 阅读全文
摘要:
addInterceptor 3个地方 XML 解析的 SqlSessionFactoryBean: 生成 SqlSession 的 FactoryBean PageHelperAutoConfiguration: 分页助手的自动配置 SqlSessionFactoryBean 发现现在都没有将他作 阅读全文
摘要:
MyBatis 插件 MyBatis 的插件实际上就是 Interceptor,拦截器,拦截并重写 SQL 为什么叫插件而不叫拦截器,因为在包 plugin 里,( ﹁ ﹁ ) ~→ Interceptor: 拦截器 InterceptorChain: 拦截器链 Invocation: 封装 Obj 阅读全文
摘要:
DefaultSqlSession 这个就不说了,SQL 执行是调用执行器 Executor 执行 SqlSessionTemplate 构造函数,虽然没有立即创建 SqlSession 传入代理拦截器 SqlSessionInterceptor,但是拦截器是一个实例内部类,可以访问到 SqlSes 阅读全文
摘要:
代码 // 使用流程 // 1. 读取配置文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); // 2. 创建 SqlSessionFactory 工厂 SqlSessionFactory 阅读全文
摘要:
XML 解析时对 environment 节点的处理 TransactionFactory txFactory = transactionManagerElement(child.evalNode("transactionManager")); DataSourceFactory dsFactory 阅读全文
摘要:
配置 <environments default="default"> <environment id="default"> <!-- 事务类型 --> <transactionManager type="JDBC"/> <!-- 数据源类型 --> <dataSource type="POOLED 阅读全文
摘要:
别名 TypeAliasRegistry 默认注册了很多别名,构造函数注册的 public TypeAliasRegistry() { registerAlias("string", String.class); registerAlias("byte", Byte.class); register 阅读全文
摘要:
数据库 DDL CREATE DATABASE `mybatis_demo01`; -- mybatis_demo01.`user` definition CREATE TABLE `user` ( `id` int NOT NULL AUTO_INCREMENT, `username` varch 阅读全文