突然遇上一个很奇怪的问题
applicationContext-dao.xml在创建dataSource时无法使用表达式${jdbc.driver}
tomcat在启动时会报一大段异常(异常信息放在问题的底部了)
===================
但假如在xml写死就不会有问题

===================
最让我觉得奇怪的是,明明第一天properties用得好好的,结果第二天莫名奇妙出现这样的错误
去网上查了查,找到大多是这样的解答:
将<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
改成<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
记住ref要改成value
原因分析:是因为配置了class="org.mybatis.spring.mapper.MapperScannerConfigurer",而这句代码会在数据源加载前就执行了,之后就把表达式${jdbc.driverClassName}当成字符串执行了。
不过很遗憾,我就是这么配置的,所以这条解答对我没用......
想请教老师,请问您碰到过这样的问题吗?
异常信息(只复制了部分):
Caused by: java.lang.IllegalStateException: Could not load JDBC driver class [${jdbc.driver}]
at org.springframework.jdbc.datasource.DriverManagerDataSource.setDriverClassName(DriverManagerDataSource.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.BeanWrapperImpl$BeanPropertyHandler.setValue(BeanWrapperImpl.java:332)
at org.springframework.beans.AbstractNestablePropertyAccessor.processLocalProperty(AbstractNestablePropertyAccessor.java:458)
... 38 more
Caused by: java.lang.ClassNotFoundException: ${jdbc.driver}
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1291)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.springframework.jdbc.datasource.DriverManagerDataSource.setDriverClassName(DriverManagerDataSource.java:127)
... 44 more
【毕设】SSM全面梳理,前后端分离,zTree 和复杂SQL打造权限系统,解惑MyBatis和RESTful
了解课程