I have Three configuration @Configuration files , e.g. CrrConfig, (CrrWsConfig extends ParentCrrWsConfig) ParentCrrWsconfig has

@Configurtion 
public class   CrrWsConfig extends ParentCrrWsConfig   {

....../// other configuration 

}
@Configuration 
public class   ParentCrrWsConfig {

    @Bean
    @ConditionalOnBean
    @DependsOn(value = { "enableQuartz" })
    public SchedulerFactoryBean quartzScheduler(ApplicationContext applicationContext) {
              .. do something 
     }
}
@Configuration 
public class   CrrConfig {

    @Value("${enable.quartz}")
    private String  enableQuartzFlag;

   @Bean
    publiv String enableQuartz(){
       return enableQuartzFlag;
     }
}

if I define the bean enableQuartz in a different class CrrConfig, the ParentCrrWsConfig class when configuring the application and instantiating all the Spring beans does not instantiate the quartzScheduler method, but it works if I declare the enabelQuartz been in the child classes CrrWsConfig, Does the Default : org.springframework.boot.autoconfigure.condition.SearchStrategy.ALL this really works or I have wrong understanding of the Search,.

Comment From: philwebb

@SanjayGautam I'm afraid you can't use @ConditionalOnBean on regular @Configuration classes, it's specifically designed for auto-configuration. See this part of the Javadoc.