मुझे सेवा कक्षा के @Autowired ठोस कार्यान्वयन द्वारा इंजेक्ट करने की आवश्यकता है।वसंत - कंक्रीट इंटरफ़ेस कार्यान्वयन कैसे इंजेक्ट करें?
सेवा इंटरफ़ेस:
public interface PostService {
...
}
कार्यान्वयन:
@Service("postServiceImpl")
public class PostServiceImpl implements PostService {
...
}
सेवा में तरीके @ लेन-देन संबंधी टिप्पणी के साथ कर रहे हैं
और अब मैं अपने नियंत्रक को postServiceImpl इंजेक्षन करना चाहते हैं - क्योंकि मैं की जरूरत है कार्यान्वयन से एक विधि का उपयोग करने, कि इंटरफ़ेस में नहीं है:
@Autowired
@Qualifier("postServiceImpl")
private PostServiceImpl postService;
मैं NoSuchBeanDefinitionException प्राप्त निम्न संदेश के साथ:
के प्रकार [(...) .PostServiceImpl] निर्भरता के लिए मिला कोई योग्यता सेम: उम्मीद कम से कम 1 सेम जो autowire के रूप में उत्तीर्ण इस निर्भरता के लिए उम्मीदवार।
जब मैं अपने नियंत्रक में क्षेत्र बदलने के लिए:
private PostService postService
यह काम करता है, लेकिन मैं PostServiceImpl से एक विशिष्ट विधि का उपयोग नहीं कर सकते हैं।
तब इंटरफेस में जोड़ें। यदि आप कंक्रीट प्रकार इंजेक्ट करते हैं तो इंटरफेस घोषित करने का क्या मतलब है? –
क्या आपके पास उस बीन पर कुछ पहलू लागू किए गए हैं? या प्रॉक्सी इंटरफेस आधारित? – fcracker79
@ fcracker79 मुझे लगता है कि मेरे पास है, क्योंकि सेवा में विधियां @ लेनदेन संबंधी एनोटेशन के साथ हैं। – tomdavies