java - 如何在Spring中的@Bean方法中定义可选参数(依赖项)?

标签 java spring spring-boot

何时使用spring注解@Bean声明一些实例,参数是注入(inject)的,这些都是必需的,如果找不到实例,会抛出NoSuchBeanException。

如何将其设为可选?类似 @Autowired(required = false)

例如

@Configuration
class SomeConfiguration {

  @Bean
  public SomeComponent someComponent(Depend1 depend1,
                                     Depend2 depend2) {
    SomeComponent someComponent = new SomeComponent();
    someComponent.setDepend1(depend1);
    if (depend2 != null) {
      someComponent.setDepend2(depend2);
    }
    return someComponent;
  }
}

最佳答案

只需使用可选:

@Bean
public SomeComponent someComponent(Depend1 depend1, Optional<Depend2> depend2) {
   ...
}

关于java - 如何在Spring中的@Bean方法中定义可选参数(依赖项)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46704950/

相关文章:

java - Spring AOP问题

java - 单独类中的事件处理程序 Axon 3.0.3

java - do-while循环不注意java中的while

Java AES 字符串解密 "given final block not properly padded"

java - 什么是正确的模式?

Java - 将 JMS 消息流式传输到 Oracle 表中

docker - 无法使用 dockerized spring boot 应用程序创建 RabbitMq 交换

java - JPanel ActionMethod 显示时

java - 禁用在 ViewPager 中的某些 fragment 上滑动

java - 未找到 Spring @Autowired bean,未找到 [...] 类型的合格 bean