spring 整合mybatis找不到${jdbc.driverClass}

 
 

1.检查是否设置了mapper扫描org.mybatis.spring.mapper.MapperScannerConfigurer类

  在spring里使用org.mybatis.spring.mapper.MapperScannerConfigurer 进行自动扫描的时候,设置了sqlSessionFactory 的话,可能会导致PropertyPlaceholderConfigurer失效,
也就是用${jdbc.username}这样之类的表达式,将无法获取到properties文件里的内容。 导致这一原因是因为,MapperScannerConigurer实际是在解析加载bean定义阶段的,
这个时候要是设置sqlSessionFactory的话,会导致提前初始化一些类,这个时候,PropertyPlaceholderConfigurer还没来得及替换定义中的变量,
导致把表达式当作字符串复制了。 但如果不设置sqlSessionFactory 属性的话,就必须要保证sessionFactory在spring中名称一定要是sqlSessionFactory ,
否则就无法自动注入。又或者直接定义 MapperFactoryBean ,再或者放弃自动代理接口方式。 

  若设置了此类,则不能再用${jdbc.driverClass}配合以下设置去配置dataSource了

  观察箭头指向的ref会把${jdbc.driverClass}解析为 字符串,而不是jdbc.properties中的键值

2.更改方法

  (1).dataSource使用如下配置

    

  (2).配置mapper扫描做以下配置

    

原文地址:https://www.cnblogs.com/ssjifm/p/7652502.html