解决程序中Error creating bean with name 'XXXXX‘ defined in class path resource [application的异常

最近在项目中犯了一个低级的错误,很low的错误,首先贴出我自己程序的报错信息,信息如下:

Error creating bean with name 'sqlSessionFactory' defined in class path resource [applicationContext.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'的bean时出错,即创建mybatis的sqlSessionFactory失败,失败的原因是无法将你的datasource里配置的字符串转换成javax.sql.DataSource对象,导致SessionFactory无法完成。

到这里我们就可以明确的知道datasource配置肯定有误,因此我们要去检查我们在applicationContext.xml文件中配置的数据源,

打开applicationContext.xml文件,我发现我自己写的配置数据源的代码是这样的:

<property name="dataSource" value="dataSource">

看,在这里我居然写的是value!我居然写的是value!!我居然写的是value!!!心态有点崩,

于是就把上面一句中的value改成了ref,如下:

<property name="dataSource" ref="dataSource"/>

这里解释一下,ref和value是有区别的,value对应的是给属性赋值是基本数据类型和string类型的。ref是对应的当前xml文件中配置过的bean类型。这个概念在我的https://blog.csdn.net/qq_38701478/article/details/82778431这篇博客中有介绍过,有不明白的可以去看看。

在这里如果我们用了value进行注入的话,Spring会以字符串方式注入,因此会报类型不匹配的异常

好了,希望大家在写程序的时候细心点,不要犯一些低级的错误。

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值