में एनोटेशन के माध्यम से कन्स्ट्रक्टर को पैरामीटर इंजेक्ट करें मैं स्प्रिंग बूट एनोटेशन कॉन्फ़िगरेशन का उपयोग कर रहा हूं। मेरे पास एक वर्ग है जिसका कन्स्ट्रक्टर 2 पैरामीटर (स्ट्रिंग, एक और कक्षा) स्वीकार करता है।स्प्रिंग
Fruit.java
public class Fruit {
public Fruit(String FruitType, Apple apple) {
this.FruitType = FruitType;
this.apple = apple;
}
}
Apple.java
public class Apple {
}
मैं एक वर्ग निर्माता के लिए मानकों को इंजेक्शन लगाने के द्वारा ऊपर वर्ग autowire की जरूरत है ("लोहा फल", एप्पल वर्ग)
Cook.java
public class Cook {
@Autowired
Fruit applefruit;
}
मानकों ("लोहा फल", एप्पल वर्ग)
एक्सएमएल विन्यास इस तरह दिखता है के साथ फल वर्ग autowire को पकाना वर्ग की जरूरत:
<bean id="redapple" class="Apple" />
<bean id="greenapple" class="Apple" />
<bean name="appleCook" class="Cook">
<constructor-arg index="0" value="iron Fruit"/>
<constructor-arg index="1" ref="redapple"/>
</bean>
<bean name="appleCook2" class="Cook">
<constructor-arg index="0" value="iron Fruit"/>
<constructor-arg index="1" ref="greenapple"/>
</bean>
कैसे एनोटेशन विन्यास केवल का उपयोग कर इसे प्राप्त करने के लिए? साथ ही
@Component
public class Apple{
}
फल:
@Component
public class Fruit {
@Autowired
public Fruit(
@Value("iron Fruit") String FruitType,
Apple apple
) {
this.FruitType = FruitType;
this.apple = apple;
}
}
नोट @Autowired
और @Value
एनोटेशन के उपयोग
मैं सुधार हुआ है मेरे सवाल का एक सा। यदि मुझे विभिन्न सेब (लाल या हरे सेब) इंजेक्ट करने की आवश्यकता है, तो क्या करना है। एक ही कक्षा के साथ विभिन्न सेम। फ्रूट क्लास कन्स्ट्रक्टर पैरामीटर को लाल या हरे रंग के साथ इंजेक्शन दिया जाना चाहिए – vishnumanohar
@ विष्णुमानोहर ने मेरा उत्तर अपडेट किया। – medvedev1088
क्या होगा यदि ऐप्पल स्प्रिंग-प्रबंधित नहीं है और किसी तृतीय पक्ष लाइब्रेरी से संशोधित नहीं किया जा सकता है? – Claus