MyBatis 源碼分析
其實很早就想寫一篇 iBatis 的源碼分析了, 不過有段時間去學習 Go 了, Java 就放下了, 最近 重新撿起 Java 就把以前沒填的坑,填一下. Init 現在開始正片. 首先是 iBatis 的初始化工作.我們看下面的代碼: 1// `BlogDataSourceFactory`的主要作用: 通過你的配置文件, 初始化一個DataSource 2DataSource dataSource = BlogDataSourceFactory.getBlogDataSource(); 3// JdbcTransactionFactory一個New就能得到, 沒什麼依賴條件 4TransactionFactory transactionFactory = new JdbcTransactionFactory(); 5// Environment要你交出數據源和事務工廠還有你的環境是開發還是生產 6Environment environment = new Environment("development", transactionFactory, dataSource); 7// Configuration有基本上你所有的配置 8Configuration configuration = new Configuration(environment); 9// 添加你的mapper到配置列表中, 等會我們去分析它 10configuration.addMapper(BlogMapper.class); 11// 通過你的配置類,讓我們初始化一個SqlSessionFactory! 我們終於進入正題了!! 12// 可能你覺得很快... 其實本人在這裡面分析還是花了很長時間 13SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration); 好, 上文有說configuration.addMapper(BlogMapper.class)這個方法, 現在我們來分析一下它. ...