मैं समझता हूं कि स्प्रिंग बूट में @Conditional
एनोटेशन जैसे @ConditionalOnBean
, @ConditionalOnClass
, @ConditionalOnProperty
, ConditionalOnWebApplication
हैं। लेकिन मुझे नहीं पता कि यह कैसे काम करता है?वसंत बूट में सशर्त एनोटेशन कैसे काम करता है?
उदाहरण के लिए:
@Configuration
@ConditionalOnClass(MyBean.class)
public class MyConfiguration{
// omitted
}
मैं है क्या समझ में आया, MyConfiguration
लोड किया जाएगा केवल अगर MyBean
मेरी classpath में उपलब्ध है। लेकिन MyBean
क्लास मेरे क्लास पथ में नहीं है, तो यह संकलित और चलाएगा क्योंकि संकलक @ConditionalOnClass(MyBean.class)
लाइन तक पहुंचता है, क्या यह कंपाइलर त्रुटि फेंक नहीं सकता है? जैसे ही मैं अपने ग्रहण में ऐसा कोड जोड़ता हूं, मुझे संकलन समय त्रुटि मिल रही है। क्षमा करें अगर यह बहुत ही बुनियादी सवाल है लेकिन मुझे नहीं पता कि मुझे समझने में क्या गुम है।
आपकी व्याख्या और लिंक बहुत उपयोगी हैं। बहुत बहुत धन्यवाद –