ही स्रोतों पर अपने साथी की खोज:
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'service.MenuService#0'
defined in class path resource [spring-beans/integrator.xml]:
Could not resolve matching constructor (hint: specify index/type/name
arguments for simple parameters to avoid type ambiguities)
जबकि मेरी मेजबान, परीक्षण और उत्पादन सर्वर में ऐसी कोई त्रुटि है।
के साथ:
<bean class="service.MenuService">
<constructor-arg index="0" type="java.lang.String" value="#{user}"/>
<constructor-arg index="1" type="java.lang.String" value="#{password}"/>
<constructor-arg index="2" type="java.lang.String" value="#{uri}"/>
<property name="system" value="OPRT"/>
<property name="client" value="OPRT"/>
</bean>
जबकि वहाँ केवल एक सेम में 3-args निर्माता हैं।
कारण निर्माता का उपयोग करने - यह init()
विधि लागू द्वारा गैर स्प्रिंग पुस्तकालय पर कुछ अतिरिक्त कार्यों प्रदर्शन। और फ़ील्ड के रूप में तर्क सेट करें।
तो मैं spring-beans.xml
बदलें:
<bean class="service.MenuService" init-method="init">
<property name="login" value="#{user}"/>
<property name="password" value="#{password}"/>
<property name="httpsUrl" value="#{uri}"/>
<property name="system" value="OPRT" />
<property name="client" value="OPRT" />
</bean>
init-method=
भाग पर ध्यान रखना।
अद्यतन सब कुछ मैंने सरल XML कॉन्फ़िगरेशन लिखा और डीबगर में स्प्रिंग स्रोत कोड के माध्यम से कदम उठाया। लगता है कि वसंत 3.x के साथ उस में एक्सएमएल सेम परिभाषा निर्माता-आर्ग और संपत्ति गठबंधन करने के लिए संभव है (AbstractAutowireCapableBeanFactory.java
में जाँच doCreateBean है, जो फोन createBeanInstance और populateBean अगले)।
यह भी देखें https://softwareengineering.stackexchange.com/questions/149378/both-constructor-and-setter-injection-together-in-spring/
वसंत का कौन सा संस्करण? वसंत 3.0.5 के साथ मेरे लिए ठीक काम करता है। साथ ही, केवल एक या दूसरे को सेट करने का प्रयास करें। मेरा अनुमान है कि आपकी समस्या में मिश्रण संपत्ति और कन्स्ट्रक्टर-एर्ग के साथ कुछ लेना देना नहीं है। – Damien
यह वाक्यविन्यास ठीक है। क्या आप वाकई * कन्स्ट्रक्टर के भीतर से * सीआरएफ' का उपयोग करने की कोशिश नहीं कर रहे हैं, क्योंकि यह उस बिंदु से निर्धारित नहीं होगा। – skaffman
एक बीन के लिए एक भी कम केस पत्र से शुरू करने से वसंत, जैक्सन और अन्य लोगों के साथ परेशानी हो सकती है जो बीन विनिर्देश पर भरोसा करते हैं। यदि आपने संपत्ति को मेरी सीआरएफ में बदल दिया है तो क्या यह इस मुद्दे को हल करता है? – Hazok