04 2024 档案
摘要: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
阅读全文