关于spring的applicationContext.xml配置文件的ref和value之自我想法

Posted 博客王大锤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于spring的applicationContext.xml配置文件的ref和value之自我想法相关的知识,希望对你有一定的参考价值。

    今天在做SSH的一个项目的时候,因为需要定时操作,所以就再sping里面加入了一个quartz的小定时框架,结果在运行时候,发生了一个小bug.

Caused by: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type ‘java.lang.String‘ to required type ‘org.quartz.spi.JobFactory‘ for property ‘jobFactory‘; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.quartz.spi.JobFactory] for property ‘jobFactory‘: no matching editors or conversion strategy found
Caused by: java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.quartz.spi.JobFactory] for property ‘jobFactory‘: no matching editors or conversion strategy found

这是一个非常小的bug,没想到我刚开始却没注意到哪错了.

错误代码:

<property name="jobFactory" value="jobFactory"/>

正确代码:

<property name="jobFactory" ref="jobFactory"/>
看出来了么?将string类型转换成所需要的class类型的转换错误

是value和ref写错了.

理论上,ref是用在,当前xml中先前已经配置了<bean>标签的,由于我的ssh框架使用的是注解开发,所以直接使用注解@Service("jobFactory")里面的jobFactory即可.

在spring配置文件里面,value配置的参数,一般是用在数字,字符串之类的,而不能放对象.而ref是存的是对象的引用!

特以此几年今天所犯的错误.与君共勉.

以上是关于关于spring的applicationContext.xml配置文件的ref和value之自我想法的主要内容,如果未能解决你的问题,请参考以下文章

Spring源码从开始到放弃

jap_spring

ssm applicationContent.xml

day38 04-Spring加载配置文件

spring ApplicationContext启动过程

spring ApplicationContext启动过程