在基本的 MyBatis 中,session 工廠可使用 SqlSessionFactoryBuilder 來建立。而在 MyBatis-Spring 中,則使用 SqlSessionFactoryBean 來替代:spring
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> </bean>
注意:sql
實際上在Spring中,SqlSessionFactoryBean 並非真正的session工廠,這其中經歷了apache
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); SqlSessionFactory sessionFactory = factoryBean.getObject();
這樣的py交易。最後產生的sessionFactory 對象將以SqlSessionFactory爲名存儲。session
至於,在通常的 MyBatis-Spring用法中,session工廠將會被注入到 MapperFactoryBean或其它擴展了SqlSessionDaoSupport DAO中。mybatis
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/> <!-- 自動掃描mapper.xml文件 --> <!-- 不要使用第一種方式,這是錯誤的。--> <!--<property name="mapperLocations" value="classpath*:club.lemos.ssm.mapper/*.xml"></property>--> <property name="mapperLocations" value="classpath*:club/lemos/ssm/mapper/*.xml"></property> </bean>
mapperLocations 的值能夠包含 Ant 樣式來加載一個目錄中全部文件, 或者從基路徑下 遞歸搜索全部路徑。app
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configuration"> <bean class="org.apache.ibatis.session.Configuration"> <property name="mapUnderscoreToCamelCase" value="true"/> </bean> </property> </bean>
注意:ui
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:com/taotao/mapping/*.xml"/>
<property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/>
</bean>
這個地方必定要加classpath:雖然不加可能也能訪問到。可是對於某些開發狀況下仍是會報錯。不要使用classpath*,spa
由於classpath* 是在不一樣jar包中查找多個文件。好比*.xml。code