解决程序中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文件,我发现我自己写的配置数据源的代码是这样的:

value="dataSource">

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

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

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

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

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

你可能感兴趣的:(java,Spring,那些年我们一起遇到过的异常)