<!-- 引入参数配置文件-->
<context:property-placeholder location="db.properties"/>
<!-- 连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
------------中间省略-------------
<!-- 创建 DAO 实例-->
<bean id="scanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 获取 SqlSessionFactory 实例-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<!-- 设置 getMapper 参数-->
<property name="basePackage" value="com.zzy.dao"/>
</bean>```
结果就是测试时程序无限运行,也不报错,不引入 properties 直接把参数写在 ApplicationContext.xml 里就可以正常运行。
在网上找解决方案:
1.使用 sqlSessionFactoryBeanName 注入 ,我就是这样做的但是没用
2.把 org.mybatis.spring.SqlSessionFactoryBean 的 id 直接设置为 sqlSessionFactory,然后在 org.mybatis.spring.mapper.MapperScannerConfigurer 中不做属性注入,我试过了还是不行。
mybatis-spring 版本:2.0.2
druid 版本:1.1.18
spring-jdbc 版本:5.2.8
mybatis 版本:3.4.6