# Five ways to say 'this may not exist', with zero and with two Notifier beans (Email registered before Sms) --- zero Notifier beans --- plain constructor param : FAILED NoSuchBeanDefinitionException Optional : isPresent=false @Nullable Notifier : value=null ObjectProvider.getIfAvailable() : null ObjectProvider.getIfUnique() : null ObjectProvider.getObject() : NoSuchBeanDefinitionException: No qualifying bean of type 'com.ankurm.coredi.injection.Notifier' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} @Autowired(required=false) setter: value=null --- two Notifier beans (Sms, Email), no @Primary --- ObjectProvider.getIfAvailable() : NoUniqueBeanDefinitionException: No qualifying bean of type 'com.ankurm.coredi.injection.Notifier' available: expected single matching bean but found 2: emailNotifier,smsNotifier ObjectProvider.getIfUnique() : null ObjectProvider.stream() classes : [EmailNotifier, SmsNotifier] ObjectProvider.orderedStream() : [SmsNotifier, EmailNotifier] Optional with two beans: FAILED NoUniqueBeanDefinitionException No qualifying bean of type 'com.ankurm.coredi.injection.Notifier' available: expected single matching bean but found 2: emailNotifier,smsNotifier