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

时间:2022-03-21 08:34:01

今天在做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是存的是对象的引用!

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