2012-02-01 16 views
21

में मैं वसंत में classpath: विकल्प के बारे में दो प्रश्न हैं: -classpath का उपयोग कर: वसंत

1) करता है दस्तावेज़ जिसमें यह निर्दिष्ट किया जाता है (वेब ​​अनुप्रयोगों के मामले में) के लिए संसाधन रिश्तेदार के लिए classpath: खोज?

में
<bean class="mybean"> 
<property name="myresource" value="classpath:myfile.txt"/> 
</bean> 

myconfig.xml/WEB-INF/classes/config/myconfig.xml के तहत:

मैं निम्नलिखित का उपयोग मान लीजिए। फिर से यह अपनी खोज शुरू कर देगा?

2) यह तेजी से खोज करने के लिए अगर मैं बजाय संसाधन के प्रत्यक्ष स्थान के

<bean class="mybean"> 
<property name="myresource" value="classpath:myfile.txt"/> 
</bean> 

धन्यवाद देने classpath: यानी

<bean class="mybean"> 
<property name="myresource" value="classpath:/WEB-INF/classes/myfolder/myfile.txt"/> 
</bean> 

बजाय देना है ...

उत्तर

13

क्या classpath: दस्तावेज़ के सापेक्ष संसाधन के लिए खोज जिसमें यह निर्दिष्ट है (वेब ​​आवेदक के मामले में एनएस)?

नहीं, classpath: क्लासपाथ रूट से हमेशा संबंधित है। यदि आप पथ की शुरुआत में / डालते हैं, तो इसे चुपचाप हटा दिया जाता है।

क्या यह खोजना अधिक तेज़ है यदि मैं संसाधन के प्रत्यक्ष स्थान देता हूं उदा। classpath:/WEB-INF/classes/myfolder/myfile.txt

नहीं, यह बिल्कुल काम नहीं करेगा। क्लासपाथ रूट में /WEB-INF/classes है, इसलिए पथ इसके सापेक्ष होना चाहिए।

फ़ाइल पथों के साथ classpath: पथों को भ्रमित न करें, उनके पास एक-दूसरे से कोई संबंध नहीं है।

3

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/resources.html#resources-classpath-wildcards

पर एक नजर डालें इस विशेष उपसर्ग निर्दिष्ट करता है कि सभी classpath संसाधनों से मेल खाने वाले व्यक्ति का नाम प्राप्त किया जाना चाहिए (आंतरिक रूप से, यह अनिवार्य रूप से एक ClassLoader.getResources (...) कॉल के माध्यम से होता है), और उसके बाद अंतिम अनुप्रयोग संदर्भ परिभाषा बनाने के लिए विलय किया।

तो classpath: आपके क्लासपाथ की जड़ से शुरू होता है।

संबंधित मुद्दे