मैं एक (मौजूदा) जेनकिंस प्लगइन पर काम कर रहा हूँ औरनिर्भरता इंजेक्शन का उपयोग करना चाहते हैं। दुर्भाग्य से, जेनकिंस विकास के लिए DI को खराब रूप से प्रलेखित किया गया है। जहाँ तक मुझे पता है कि जेनकिन्स डीआई के लिए Google के गुइसे ढांचे का उपयोग करता है यह विकी पेज है, लेकिन मैं इसके बारे में थोड़ा हैरान हूँ: मौजूदा जेनकींस प्लगइन्स में कि मैंने "चेक आई डॉन" नहीं किया है, गुइस को ऐसे कॉल मिलते हैं, लेकिन मुझे इसके बहुत सारे उपयोग दिखाई देते हैं @Inject
एनोटेशन। Futhermore, यह मुझे परेशान करता है कि मुझे कॉल करने की आवश्यकता होगी Guice.createInjector(new MyModule()).injectMembers(this);
के भीतर प्रत्येक कक्षा जहां मुझे निर्भरता इंजेक्शन चाहिए, ऐसा लगता है जैसे मैं अपने कोड को लेट कर रहा हूं।
मैं जेनकिंस में निर्भरता इंजेक्शन कैसे करूं? उदाहरण के लिए, मेरे पास एक सरल इंटरफ़ेस "MyInterface" और एक कार्यान्वयन वर्ग है MyInterfaceImpl
। एक तीसरी कक्षा में मेरे पास निम्नलिखित हैं:
class MyClass {
private MyInterface obj;
@Inject
public MyClass(MyInterface obj) {
this.obj = obj;
}
...
}
क्या जेनकिंस में कोई ऐसी मशीन है जो स्वचालित रूप से ऐसी वस्तुओं का निर्माण करती है, या क्या मुझे उस Guice इंजेक्टर कोड को जोड़ना है?
उत्तर:
जवाब के लिए 0 № 1अधूरी जानकारी वाली विकी ने लिखी थी डैन अलविज़क्स एक SO प्रश्न के भाग के रूप में। यह प्रतिबिंबित नहीं करता है कि जेनकिन्स वास्तव में अपने डीआई कैसे करता है।
DI के लिए एक क्लास रजिस्टर करने का सही तरीका इसके साथ एनोटेट करना प्रतीत होता है @Extension
और उपयोग कर रहे हैं @Inject
सामान्य रूप से। JavaDoc में कुछ अन्य विकल्पों पर चर्चा की गई है।