1. Mybatis整合spring
<!-- Mybatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:sqlMap/*Mapper.xml"></property>
</bean>
<!-- 配置SQLSession模板 -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
这里配置文件中使用的SqlSessionTemplate类的参数,从源码中看到是SqlSessionFactory。但是配置文件中使用的是SqlSessionFactoryBean
public SqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
this(sqlSessionFactory, sqlSessionFactory.getConfiguration().getDefaultExecutorType());
}
再去看SqlSessionFactoryBean,发现这是一个工厂bean,实现了FactoryBean接口。另外实现了InitializingBean接口