關於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是存的是對象的引用!

特以此幾年今天所犯的錯誤.與君共勉.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM