applicationContext里的dataSource使用PropertyPlaceholder,如<property name="driverClassName" value="${jdbc.driver}" />,然后启动spring一直报${jdbc.driver} class不存在。
通过不断删除不相关代码进行排查,后发现是配置org.mybatis.spring.mapper.MapperScannerConfigurer导致,原因是MapperScannerConfigurer在PropertyPlaceholder替换变量前使用变量。
两种解决办法
1、设置sqlSessionFactoryBeanName的值写成非sqlSessionFactory
2、xml 头部将 default-autowire="byName"去掉
通过不断删除不相关代码进行排查,后发现是配置org.mybatis.spring.mapper.MapperScannerConfigurer导致,原因是MapperScannerConfigurer在PropertyPlaceholder替换变量前使用变量。
两种解决办法
1、设置sqlSessionFactoryBeanName的值写成非sqlSessionFactory
2、xml 头部将 default-autowire="byName"去掉
本文探讨了在Spring框架中使用MyBatis时遇到的一个问题:当使用PropertyPlaceholder配置dataSource时,由于MapperScannerConfigurer提前使用未被替换的变量而导致的错误。文中提供了两种解决方法。
2977

被折叠的 条评论
为什么被折叠?



