package com.github.signed.sandbox.spring.ioc.autowire;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class BeanWithOptionalDependencyJava8 {
private final RequiredDependency required;
private final OptionalDependency optional;
@Autowired
public BeanWithOptionalDependencyJava8(RequiredDependency requiredDependency, Optional<OptionalDependency> maybeOptionalDependency) {
this.required = requiredDependency;
this.optional = maybeOptionalDependency.orElse(null);
}
public RequiredDependency requiredDependency() {
return required;
}
public boolean optionalBeanPresent() {
return null != optional;
}
}