在spring與mybatis3整合時一直遇到Could not load driverClass ${jdbc.driverClassName}報錯
若是將 ${jdbc.driverClassName} 改爲具體的值就不會報錯!spring
解決方案一:sql
將session
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>mybatis
改爲app
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>字符串
記住ref要改爲value io
緣由分析:是由於配置了class="org.mybatis.spring.mapper.MapperScannerConfigurer",而這句代碼會在數據源加載前就執行了,以後就把表達式${jdbc.driverClassName}當成字符串執行了。class
解決方案二:容器
<!-- 配製會話工廠 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
//此處省略代碼。。。
</bean>配置
將 id="sessionFactory" 改爲 id="sqlSessionFactory"
而後將方案一中的 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>註釋掉。
緣由分析:當id="sqlSessionFactory"時程序會在Ioc容器中自動裝配。單詞不能寫錯!!