springmvc的配置文件如下:
<!-- 1. 数据源 : DriverManagerDataSource -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
jdbc配置文件如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_blog?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
本来一直这么写都可以,但是最近报错了:
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '${jdbc.driver}'
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
... 21 more
Caused by: java.lang.ClassNotFoundException: ${jdbc.driver}
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420)
... 25 more
大致意思就是无法解析占位符,直接使用${jdbc.drvier}作为driver的名字了,通过网上查阅,发现是springmvc的配置文件的问题,修改:
<!-- 3. mybatis自动扫描加载Sql接口 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.haosong.mapper"></property>
**<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>**
</bean>
为:
<!-- 3. mybatis自动扫描加载Sql接口 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.haosong.mapper"></property>
</bean>
异常解决!