SqlSessionFactoryBean
在Mybatis中,SqlSessionFactoryBuilder用于创建SqlSessionFactory。而在Mybatis-Spring中SqlSessionFactoryBean将取而代之。
为了得到factory bean,如上节所示,需在Spring XML中配置:
- <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
- <propertyname="dataSource"ref="dataSource"/>
- </bean>
SqlSessionFactoryBean实现了Spring的FactoryBean接口。这意味着Spring最终返回的不是SqlSessionFactoryBean而是作为factory 的getObject()方法返回的Object。这相当于下面的java代码:
- SqlSessionFactoryBeanfactoryBean=newSqlSessionFactoryBean();
- SqlSessionFactorysessionFactory=factoryBean.getObject();
SqlSessionFactory的属性
1. dataSource,SqlSessionFactory有一个必须的属性,即JDBC DataSource,这个DataSource可一个任何符合Spring配置的DataSource。
2. configLocation,用于指明mybatis的XML配置文件的位置。此配置文件并不一定是完整的,比如environments,datasource,transaction都可以忽略(由SqlSessionFactoryBean自己配置)
3. mapperLocations,用于指明一组XML Mapper文件位置。是可选项。例如:
- <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
- <propertyname="dataSource"ref="dataSource"/>
- <propertyname="mapperLocations"value="classpath*:sample/config/mappers/**/*.xml"/>
- </bean>