MyBatis與Spring集成,將由Spring管理Mapper接口,而且由Spring維護線程安全的SqlSession,自動管理SqlSession,包括事務提交、回滾、SqlSession關閉等機制。安全
MyBatis與Spring集成,只須要定義兩個必要的bean就完事了。app
PS:不管是@MapperScan註解仍是定義MapperScannerConfigurer的bean,內部都使用ClassPathMapperScanner來掃描指定的包路徑,爲每個Mapper接口都建立一個MapperFactoryBean。spa
SqlSessionFactoryBean實現Spring的FactoryBean,用於建立SqlSessionFactory對象,是須要定義一個。線程
MapperFactoryBean實現Spring的FactoryBean,用於建立某個Mapper接口的代理實現。一個MapperFactoryBean負責建立一個Mapper接口的實現,同時內部建立一個SqlSessionTemplate類型的SqlSession(線程安全),所以咱們須要定義多個。代理
爲了簡化咱們的工做,提供了兩中掃描機制:對象
Spring的JavaConfig方式的掃描,接口