大家好,又见面了,我是你们的朋友全栈君。
问题原因
今天学习spring时,出现这个问题,网上查了很多,大家错误各自不同,我一个一个改了之后还是报这个错误,总结了一下大家的改错方案,我发现百分之八十都是spring配置文件有错误。
于是根据总结的东西和大家改错的方案,阅读错误信息可知,是sqlSessionFactory创建时出现了问题。
这时候请大家看 spring-dao.xml (每个人给配置文件的命名有所不同,不一定是这个名,反正就是spring的xml配置文件)后面的报错信息,根据报错信息找到你自己的问题
我的报错信息是:
Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring-dao.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.lang.String' to required type 'javax.sql.DataSource' for property 'dataSource'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'javax.sql.DataSource' for property 'dataSource': no matching editors or conversion strategy found
解决问题
阅读可知,配置数据源时出现了问题,经过排查发现,创建SqlSessionFactory这里的ref我写成了value,改正后就不报错了
下面说说我今天看到的一些其他朋友报这个错误然后他们错误的地方和我不一样的解决方案
网上找的方案
- 报错原因是因为我在mybatis里面这段代码没有删除导致spring和mybatis都扫描了一遍xml,就出错了。
<mappers>
<mapper resource="cn/dao/WorkinggMapper.xml"/>
</mappers>
这两段代码只要删一段就行,删spring里面的或者mybatis的都行
<!-- 配置SQL映射文件信息 -->
<property name="mapperLocations">
<list>
<value>classpath:cn/dao/**/*.xml</value>
</list>
</property>
此方案参考文章:https://www.cnblogs.com/hfx123/p/9685721.html
- 配置文件开头加上这剧
default-autowire="byname"
此方案参考文章:https://blog.csdn.net/weixin_43749065/article/details/84664474
项目的springBoot是使用class配置的链接数据库dao接口和配置 上图是简单springBoot 启动报的错误信息 经过一步步debug 发现是在druidDataSource 数据库配置的setDriverClassName 和setUrl 两个属性为空 修改即可
此方案参考文章:https://www.cnblogs.com/haojiedege/p/6774037.html
总之,就是写配置文件的时候一定要细心细心加细心!
总之,就是写配置文件的时候一定要细心细心加细心!
总之,就是写配置文件的时候一定要细心细心加细心!
总要的事情说三遍!!!
目前收集了这么多,如果这篇文章能帮到你希望能留言让我知道我帮助了你~
再更新一个
重复扫描了mapper,原理和网上找的方案差不多,都是两个配置文件里都扫描了mapper.class
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130088.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...