今天在做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是存的是對象的引用!
特以此幾年今天所犯的錯誤.與君共勉.