Error creating bean with name ‘sqlSessionFactory‘ defined in class path reso

Error creating bean with name ‘sqlSessionFactory‘ defined in class path reso文章目录问题原因解决问题网上找的方案问题原因今天学习spring时,出现这个问题,网上查了很多,大家错误各自不同,我一个一个改了之后还是报这个错误,总结了一下大家的改错方案,我发现百分之八十都是spring配置文件有错误。于是根据总结的东西和大家改错的方案,阅读错误信息可知,是sqlSessionFactory创建时出现了问题。这时候请大家看spring-dao.xml(每个人给配置文件的命名有所不同,不一定是这个名,反正就是spring的xml配置文件)后面的报错信息,根据报错信息找到你自己的

问题原因

今天学习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,改正后就不报错了
在这里插入图片描述
下面说说我今天看到的一些其他朋友报这个错误然后他们错误的地方和我不一样的解决方案

网上找的方案

  1. 报错原因是因为我在mybatis里面这段代码没有删除导致spring和mybatis都扫描了一遍xml,就出错了。
此代码由Java架构师必看网-架构君整理
<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

  1. 配置文件开头加上这剧
此代码由Java架构师必看网-架构君整理
default-autowire="byname"

在这里插入图片描述
此方案参考文章:https://blog.csdn.net/weixin_43749065/article/details/84664474

  1. 在这里插入图片描述
    项目的springBoot是使用class配置的链接数据库dao接口和配置 上图是简单springBoot 启动报的错误信息 经过一步步debug 发现是在druidDataSource 数据库配置的setDriverClassName 和setUrl 两个属性为空 修改即可
    此方案参考文章:https://www.cnblogs.com/haojiedege/p/6774037.html

总之,就是写配置文件的时候一定要细心细心加细心!
总之,就是写配置文件的时候一定要细心细心加细心!
总之,就是写配置文件的时候一定要细心细心加细心!
总要的事情说三遍!!!

目前收集了这么多,如果这篇文章能帮到你希望能留言让我知道我帮助了你~

再更新一个

重复扫描了mapper,原理和网上找的方案差不多,都是两个配置文件里都扫描了mapper.class

架构君码字不易,如需转载,请注明出处:https://javajgs.com/archives/210343
0
   

发表评论