轉自https://www.cnblogs.com/tmftmb/p/7173846.html
在spring與mybatis3整合時一直遇到Could not load driverClass ${jdbc.driverClassName}報錯
如果將 ${jdbc.driverClassName} 改成具體的值就不會報錯!
解決方案一:
將
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
改成
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
記住ref要改成value
原因分析:是因為配置了class="org.mybatis.spring.mapper.MapperScannerConfigurer",而這句代碼會在數據源加載前就執行了,之后就把表達式${jdbc.driverClassName}當成字符串執行了。
解決方案二:
<!-- 配制會話工廠 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
//此處省略代碼。。。
</bean>
將 id="sessionFactory" 改成 id="sqlSessionFactory"
然后將方案一中的 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>注釋掉。
原因分析:當id="sqlSessionFactory"時程序會在Ioc容器中自動裝配。單詞不能寫錯!!
<--有其它更多方法,請評論-->