2015-02-20 7 views
5

में ऑटोवॉयरिंग HttpServletRequest मान लें कि मेरे पास स्प्रिंग नियंत्रक है।स्प्रिंग नियंत्रक

@RequestMappin("/path") 
public MyController { 
} 

जैसा कि कहा गया है, नियंत्रक का डिफ़ॉल्ट दायरा सिंगलटन है। मुझे पता है कि मैं अनुरोध गुंजाइश सेम में अनुरोध autowire कर सकते हैं, हालांकि, अगर मैं अनुरोध autowire करने की कोशिश है, ताकि

@RequestMappin("/path") 
public MyController { 
     @Autowired 
     private HttpServletRequest request; 
    } 

यह अभी भी काम करता है, और प्रत्येक अनुरोध के लिए मैं उपयुक्त अनुरोध वस्तु मिलता है। क्या इसका मतलब है कि स्कोप अनुरोध के बावजूद ऑटोवायर काम करता है या नहीं?

+0

पर कॉल करते हैं क्या यह अनुरोध थ्रेड सुरक्षित है? मेरा मतलब है कि अगर इस अनुरोध में विशेषताएं हैं, तो विशेषता का मूल्य अद्वितीय है? – user1438980

उत्तर

4

यदि यह काम करता है तो इसका मतलब है कि वसंत बिल्कुल http अनुरोध इंजेक्ट नहीं करता है लेकिन प्रॉक्सी। प्रॉक्सी प्रतिनिधि वर्तमान http अनुरोध

+1

तो क्या यह डिफ़ॉल्ट व्यवहार है, या अनुरोधित स्कैन बीन्स के साथ यह अनुरोध सीधे इंजेक्ट करता है? –

+0

मुझे नहीं पता। लेकिन यह वास्तव में कोई फर्क नहीं पड़ता - आपके कार्यक्रम पर भरोसा नहीं करना चाहिए – piotrek

1

आप प्रत्येक webservice विधि में HttpServletRequest ऑब्जेक्ट प्राप्त कर सकते हैं। जैसे:

@RequestMapping("/method") 
public void method(HttpServletRequest req) { 
    // ... 
} 
संबंधित मुद्दे