这是我的用例:
当我的应用程序启动时,将创建N类型的A bean。
我想拥有自己的商业逻辑来检查这些N豆1和1:
我不确定我是否可以像这样简单地使用Optional:
@Autowired
List<A> beans;
@Bean
public Optional<A> maybeA(){
//check beans and optionally create a A
}
定义返回类型为Optional的bean是非常不寻常的,并不是一个好的解决方案。我建议你检查一下你是否可以按照https://iamninad.com/conditional-bean-creation-in-spring-boot/的描述实现你的逻辑,或者如果你坚持按照你的解决方案,你可以创建一个新类:
public class UnMatchedACriteriaImpl implements A {
public void testMethod() throws UnSatisfiedXCriteria {
throw new UnSatisfiedXCriteria();
}
}
并将您的bean定义更改为:
@Bean
public A maybeA(){
//check beans and optionally create a A
}
如果您的标准不匹配,则返回UnMatchedACriteriaImpl
版本的A
。当您想在应用程序中使用它时,这是清晰且易于管理的。