मेरे पास एक स्प्रिंग एप्लिकेशन है और इसमें नहीं है xml कॉन्फ़िगरेशन, केवल जावा कंडफिग का उपयोग करें। सब कुछ ठीक है, लेकिन जब मैं परीक्षण पर कोशिश करता हूं तो मुझे परीक्षणों में घटकों के अभाव को सक्षम करने में समस्याएं आ रही हैं। तो चलो मैं एक इंटरफ़ेसवसंत में परीक्षण के दौरान क्रूड रिपोजिटरी इंटरफ़ेस का उदाहरण कैसे बनाएं?
@Repository
public interface ArticleRepository extends CrudRepository<Page, Long> {
Article findByLink(String name);
void delete(Page page);
}
और एक घटक/सेवा है शुरू करते हैं
@Service
public class ArticleServiceImpl implements ArticleService {
@Autowired
private ArticleRepository articleRepository;
...
}
मैं तो मेरे परीक्षण के लिए मैं ArticleServiceImpl केवल का उपयोग कर परीक्षण करने की कोशिश एक्सएमएल विन्यास का उपयोग नहीं करना चाहते हैं जावा कॉन्फ़िगरेशन। तो परीक्षण उद्देश्य के लिए मैंने बनाया:
@Configuration
@ComponentScan(basePackages = {"com.example.core", "com.example.repository"})
public class PagesTestConfiguration {
@Bean
public ArticleRepository articleRepository() {
// (1) What to return ?
}
@Bean
public ArticleServiceImpl articleServiceImpl() {
ArticleServiceImpl articleServiceImpl = new ArticleServiceImpl();
articleServiceImpl.setArticleRepository(articleRepository());
return articleServiceImpl;
}
}
में articleServiceImpl() मैं articleRepository() के कहने लगाने की जरूरत है, लेकिन यह एक अंतरफलक है। नए कीवर्ड के साथ नई वस्तु कैसे बनाएं? क्या यह एक्सएमएल कॉन्फ़िगरेशन क्लास बनाने और ऑटोवॉयरिंग सक्षम किए बिना संभव है? परीक्षण के दौरान केवल JavaConfigurations का उपयोग करते समय अवांछित सक्षम किया जा सकता है?
नहीं, आप नहीं करते हैं। आपके पास '@ ऑटोवायर' है इसलिए आपको इसे सेट करने की आवश्यकता नहीं है। स्प्रिंग डेटा जेपीए आपके लिए बीन्स बनाने के लिए आपको अपनी कॉन्फ़िगरेशन क्लास पर '@ EnableJpaRepositories 'डालना होगा। ArticleServiceImpl के लिए –
मेरे पास भी Awtowire है इसलिए मुझे ArticleServiceImpl() भी लिखने की आवश्यकता नहीं है? क्या मैं सही हू? मैं समझ नहीं पा रहा हूं कि वसंत परीक्षणों के लिए ऑटोवॉयरिंग को कैसे चालू करता है। नाम 'articleServiceImpl' नाम से बीन बनाने में त्रुटि: स्वत: निर्भर निर्भरताओं का इंजेक्शन विफल रहा; नेस्टेड अपवाद है org.springframework.beans.factory.BeanCreationException: क्षेत्र ऑटोवायर नहीं कर सका: निजी com.musala.repository.ArticleRepository – Xelian
@ एम। डीनियम के पास सही जवाब है .. – Jaiwo99