今天在做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"/>
是value和ref写错了.
理论上,ref是用在,当前xml中先前已经配置了<bean>标签的,由于我的ssh框架使用的是注解开发,所以直接使用注解@Service("jobFactory")里面的jobFactory即可.
在spring配置文件里面,value配置的参数,一般是用在数字,字符串之类的,而不能放对象.而ref是存的是对象的引用!
特以此几年今天所犯的错误.与君共勉.