सर्वलेट 3.0 के बाद से javax.servlet.ServletContext#addServlet
के साथ प्रोग्रामेटिक रूप से सर्वलेट उदाहरण पंजीकृत करना संभव है। इस वर्ग में createServlet
विधि भी है जो कुछ एनोटेशन का विश्लेषण करती है और निर्भरता इंजेक्शन करती है। मुझे आश्चर्य है कि अगर मुझे एनोटेशन प्रोसेसिंग की आवश्यकता नहीं है तो मुझे इस विधि की ज़रूरत है। मैं निर्भरता इंजेक्शन के माध्यम से आवश्यक निर्भरताओं को सेट करने के लिए एक सामान्य कन्स्ट्रक्टर के साथ एक सर्वलेट रखना चाहता हूं।सर्वलेट 3.0 के साथ कन्स्ट्रक्टर निर्भरता इंजेक्शन?
@Inject
public MyServlet(SomeDependency sd) { // Constructor
...
}
सवाल:
- यह एक सर्वलेट उदाहरण "हाथ से"
createServlet
बिना निर्माण करने के लिए संभव है? (new MyServlet()
) - क्या रचनात्मक इंजेक्शन करने के लिए जावा ईई सर्वर की निर्भरता इंजेक्शन तंत्र का उपयोग करना संभव है? यह कैसे करना है? या Guice की तरह एक अलग डी ढांचे की आवश्यकता है?
धन्यवाद, जेएसआर -29 9 वह है जो मैं ढूंढ रहा हूं। वेल्ड प्रलेखन कहता है: "हम इसे एक बीन के निर्माता, विधि या क्षेत्र में इंजेक्शन करके टेक्स्टट्रांसलेटर का एक उदाहरण प्राप्त कर सकते हैं, या एक क्षेत्र या जावा ईई घटक वर्ग की विधि जैसे सर्वलेट।" http://docs.jboss.org/weld/reference/1.0.0/en-US/html/intro.html ऐसा लगता है जैसे servlets के साथ कन्स्ट्रक्टर इंजेक्शन संभव नहीं है। – deamon
ध्यान दें कि वेल्ड के शुरुआती संस्करण बदले गए थे ... अगर आपको कॉन्फ़िगरेशन 100% सही नहीं मिला तो अनुपयोगी। यह तब से सुधार हो सकता है। –