gpt4 book ai didi

java - spring 注解@ConditionalOnMissingBean 有什么作用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:26:52 27 4
gpt4 key购买 nike

我正在尝试启动一个已使用此注释的 springboot 应用程序。当我尝试启动应用程序时,出现以下错误:

org.springframework.boot.autoconfigure.condition.OnBeanCondition$BeanTypeDeductionException Failed to deduce bean type for com.shutterfly.sbs.platform.SbsPlatformConfigurationClientConfig.getRestTemplate

代码:

@ConditionalOnMissingBean
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}

最佳答案

@ConditionalOnMissingBean注释仅在给定的 bean 丢失时才用于加载 bean:

@Bean
@ConditionalOnMissingBean(SomeBean.class)
public SomeBean otherBean(){
return new SomeBean();
}

只有当上下文中不存在该类型的其他 bean 时,上面的 bean 才会被 Spring 加载。另一方面,如果应用程序上下文中已经存在 SomeBean 类型的 bean,则不会创建上述 bean。

此注释派上用场的一些用例是:

  • 指定一个后备 bean,如果不存在相同类型的 bean,该 bean 仅作为备份加载(例如:如果没有配置真实数据库,则使用内存数据库)
  • 指定一个默认 bean,它允许在上下文中存在更具体的相同类型的 bean 的情况下被覆盖(例如:使用默认身份验证机制,除非有人决定用他自己的自定义身份验证替换它)

引用:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html

关于java - spring 注解@ConditionalOnMissingBean 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50796810/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com