मैं वसंत एनोटेशन का उपयोग कर रहा हूं और मैं आलसी प्रारंभिक उपयोग करना चाहता हूं।वसंत @Autowired @Lazy
मैं एक समस्या में भाग रहा हूं कि जब मैं किसी अन्य वर्ग से एक बीन आयात करना चाहता हूं तो मुझे @Autowired
का उपयोग करने के लिए मजबूर होना पड़ता है जो आलसी init का उपयोग नहीं करता है। क्या इस आलसी init व्यवहार को मजबूर करने के लिए वैसे भी है?
इस उदाहरण में मैं कभी भी प्रिंटिंग पैरेंट बीन "नहीं देखना चाहता हूं क्योंकि मैं केवल childBean
लोड कर रहा हूं जिसकी lazyParent
पर कोई निर्भरता नहीं है।
@Configuration
public class ConfigParent {
@Bean
@Lazy
public Long lazyParent(){
System.out.println("Loading parent bean");
return 123L;
}
}
@Configuration
@Import(ConfigParent.class)
public class ConfigChild {
private @Autowired Long lazyParent;
@Bean
public Double childBean() {
System.out.println("loading child bean");
return 1.0;
}
@Bean
@Lazy
public String lazyBean() {
return lazyParent+"!";
}
}
public class ConfigTester {
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(ConfigChild.class);
Double childBean=ctx.getBean(Double.class);
System.out.println(childBean);
}
}
मुझे बस 'शून्य' बीन की यह भयानक दृष्टि थी। टीडीडब्ल्यूटीएफ के लिए एक मुझे लगता है ... –
शून्य बीन उन सभी पर शासन करने के लिए। उन्हें खोजने के लिए शून्य बीन। शून्य बीन उन्हें सभी लाने के लिए, और निर्भरता इंजेक्शन में उन्हें –
@ स्कैमैन बांधें क्या मैं पूछ सकता हूं कि मुझे स्ट्रिंग्स को बीन्स के रूप में परिभाषित क्यों नहीं करना चाहिए? – wings