मेरे स्प्रिंग 3.0 ऐप में, मेरे पास /WEB-INF/dir
में कुछ संसाधन हैं। रनटाइम पर मुझे उनमें से कुछ को InputStream
(या किसी अन्य प्रकार) के रूप में चाहिए। मैं उन्हें कैसे प्राप्त कर सकता हूं? क्या उन्हें सामान्य Resource
के रूप में इंजेक्ट करना संभव है?स्प्रिंग 3.0 संसाधनों के रूप में फ़ाइलों को इंजेक्ट करें
उत्तर
यहाँ टिप्पणी द्वारा यह करने के लिए एक आसान तरीका है:
import org.springframework.core.io.Resource;
@Value("classpath:<path to file>")
private Resource cert;
आप उपयोग करने के लिए सक्षम होना चाहिए:
Resource resource = appContext.getResource("classpath:<your resource name>");
InputStream is = resource.getInputStream();
जहां appContext
अपने स्प्रिंग ApplicationContext
है (विशेष रूप से, एक WebApplicationContext, जब से तुम एक webapp है)
' संसाधन 'इंटरफ़ेस' getInputStream() 'विधि घोषित नहीं करता है, आपको' नया FileInputStream (resource.getFile()) 'कॉल करने की आवश्यकता होगी। –
यह गलत है। 'संसाधन' को इंटरफ़ेस 'org.springframework.core.io.InputStreamSource' – Saket
से प्राप्त होता है मेरा बुरा, क्षमा करें,' उपकरण 'नहीं देखा। –
आप वसंत पर निर्भरता की स्थिति के लिए नहीं करना चाहते हैं , यहां विस्तृत दृष्टिकोण का पालन करें: Populate Spring Bean's File field via Annotation
मैं यह देखने में असफल रहा कि उस प्रश्न के किसी भी उत्तर के परिणामस्वरूप वसंत पर निर्भरता कम हो गई है ... –
मैं मानता हूं कि @Value का उपयोग शून्य वसंत निर्भरता नहीं है। –
लेकिन एनोटेशन वसंत इंजेक्शन प्राप्त करने का सबसे अच्छा तरीका है, बिना दोहराए जाने वाले सिद्धांत का उल्लंघन किए। एक्सएमएल दृष्टिकोण, जो आप अनुशंसा करते हैं, आपको खुद को दोहराने के लिए मजबूर करता है। जल्द या बाद में कोई जावा फ़ाइल में संपत्ति का नाम बदलने जा रहा है और वसंत बीन परिभाषा फ़ाइल को अपडेट करना भूल गया है। –
सभी ApplicationContext
परिभाषा के अनुसार ResourceLoader
एस हैं। इसका मतलब है कि वे अपने विन्यास में पाए गए संसाधन संसाधनों को हल करने में सक्षम हैं। इसे ध्यान में रखते हुए, आप अपने लक्ष्य बीन को एक सेटटर के साथ घोषित कर सकते हैं जो org.springframework.core.io.Resource
स्वीकार करता है। फिर जब आप लक्ष्य बीन को कॉन्फ़िगर करते हैं, तो बस संपत्ति के मूल्य में संसाधन पथ का उपयोग करें। वसंत मूल्य को आपकी कॉन्फ़िगरेशन में Resource
में परिवर्तित करने का प्रयास करेगा।
public class Target {
private Resource resource;
public void setResource(final Resource resource) {
this.resource = resource;
}
}
//configuration
<beans>
<bean id="target" class="Target">
<property name="resource" value="classpath:path/to/file"/>
</bean>
</beans>
क्लासपाथ संसाधन पुनर्प्राप्त करने के लिए यहां एक पूर्ण उदाहरण है। मैं इसका इस्तेमाल किया है कि वास्तव में जटिल प्रश्न जो मैं जावा वर्गों में स्टोर करने के लिए नहीं करना चाहती एसक्यूएल फ़ाइल को पकड़ने की:
public String getSqlFileContents(String fileName) {
StringBuffer sb = new StringBuffer();
try {
Resource resource = new ClassPathResource(fileName);
DataInputStream in = new DataInputStream(resource.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null) {
sb.append(" " + strLine);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
- 1. जर्सी के साथ संसाधनों में निर्भरता को इंजेक्ट कैसे करें?
- 2. स्प्रिंग 3.0
- 3. स्प्रिंग 3.0
- 4. स्प्रिंग एमवीसी 3.0
- 5. स्प्रिंग सिक्योरिटी 3.0
- 6. स्प्रिंग 3.0 सुरक्षा - प्रमाणीकरण
- 7. स्प्रिंग 3.0 एमवीसी
- 8. जर्सी डब्ल्यू/स्प्रिंग 3.0?
- 9. कृपया अनुशंसा करें कि स्प्रिंग एमवीसी 3.0
- 10. स्प्रिंग निर्भरता इंजेक्शन: इंटरफ़ेस के सभी उदाहरण इंजेक्ट करें
- 11. resx फ़ाइलों में स्थानीय संसाधनों को गायब करें
- 12. जावा स्प्रिंग एमवीसी 3.0 वेबैप
- 13. मैवेन संसाधनों का उपयोग परीक्षण संसाधनों के रूप में भी करें
- 14. वसंत वसंत को इंजेक्ट को जेएसआर -29 9 कार्यान्वयन के रूप में बदलकर समझ सकता है?
- 15. स्प्रिंग एमवीसी 3.0 में स्वरूपित डेटटाइम कैसे प्रदर्शित करें?
- 16. स्प्रिंग 3.0 सेट करें और सत्र विशेषता प्राप्त करें
- 17. जेएसएफ 2: स्प्रिंग से प्रबंधितबीन के लिए सेवा ऑब्जेक्ट इंजेक्ट करें?
- 18. स्प्रिंग एमवीसी 3.0 में किसी रूप में एक छिपे हुए मूल्य को कैसे पास किया जाए?
- 19. जार में संसाधनों को कैसे पैकेज करें
- 20. स्प्रिंग में एक स्व-तत्काल वस्तु में निर्भरताओं को इंजेक्ट कैसे करें?
- 21. जावास्क्रिप्ट फ़ंक्शन में जावास्क्रिप्ट को इंजेक्ट करें
- 22. पृष्ठों में विज्ञापनों को इंजेक्ट करें
- 23. स्प्रिंग 3.0 बनाम जावा ईई 6.0
- 24. स्प्रिंग बीन्स में <चरित्र युक्त स्ट्रिंग गुणों को इंजेक्ट कैसे करें?
- 25. मैवेन में गैर-संकलन निर्भरताओं को निर्दिष्ट करें और उन्हें संसाधनों के रूप में पैकेज करें
- 26. ConstraintValidator में इंजेक्ट सेवा [बीन सत्यापनकर्ता - JSR 303] स्प्रिंग
- 27. प्रोग्रामेटिक रूप से पीडीएफ फाइलों में जावास्क्रिप्ट इंजेक्ट कैसे करें?
- 28. ऑब्जेक्ट के बजाय फैक्ट्रीबीन इंजेक्ट कैसे करें?
- 29. स्प्रिंग 3.0 - @Transactional क्रम परिवर्तन टाइमआउट
- 30. स्प्रिंग 3.0 MVC MVC: दृश्य-नियंत्रक टैग
यह बहुत अच्छा है! – Kong
कोई निर्देशिका कैसे लोड की जा सकती है इस पर कोई विचार? उदा।, एक निर्देशिका "डीआईआर" जिसमें 25 फाइलें –
है, यह बहुत अच्छी है लेकिन जार फ़ाइल के अंदर काम नहीं कर सकती है। –