1. 程式人生 > >Mybatis在Spring環境下的啟動順序

Mybatis在Spring環境下的啟動順序

app new XML otc blank mybatis ssp builds highlight

主要看三個類:
mybatis-spring-1.2.2.jar包 -> org.mybatis.spring.SqlSessionFactoryBean
mybatis-3.2.6.jar包 -> org.apache.ibatis.builder.xml.XMLConfigBuilder
mybatis-3.2.6.jar包 -> org.apache.ibatis.session.Configuration


1. 在spring的RootConfig配置類(或配置文件)裏創建並返回一個SqlSessionFactoryBean的實例, eg:

@Bean
public SqlSessionFactoryBean sqlSessionFactory() {

SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();

sqlSessionFactory.setDataSource(jdbcDataSource()); // 指定數據源

sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis-config.xml")); //指定mybatis配置文件

return sqlSessionFactory;

}

2. SqlSessionFactoryBean會通過buildSqlSessionFactory()方法創建SqlSessionFactory的實例.
這個方法首先會通過XMLConfigBuilder來讀取mybaits配置文件的信息, 然後創建一個org.apache.ibatis.session.Configuration的實例,
並把配置文件的內容設置到這個Configuration實例的屬性裏.



3. Configuration類裏包含了所有mybatis的基礎設置, 如: settings, plugins, mappers, etc.


要想達到mybatis的零配置文件, 並且作一些自定義配置(如: 把mybatis的sql日誌打印到單獨一個文件裏), 就得重寫以上3個類.

Mybatis在Spring環境下的啟動順序