spring6 新特性 : @Fallback,bean 也可以有备胎了_spring 6.2.1 fallback beans-CSDN博客

spring6 新特性 : @Fallback,bean 也可以有备胎了

任何围绕着对控制的痴迷而建立的体制

最终都会失败,

因为它与现实不可控的本质相互矛盾

 

在Spring框架中,@Fallback注解是在Spring 6.2版本中引入的,用于在依赖注入时提供备选,也就是我们常说的备胎了。

用过 spring  同学一定了解,当Spring容器根据类型匹配到多个Bean时,会进一步根据注解@Primary  确定一个将会被使用的 bean。相当于选择一个主角 bean 来担当大任。

 那么打了@Fallback 的 bean 具体是怎样的地位呢?


1.  备选Bean的定义:@Fallback注解用于标记那些在没有其他Bean可用时才被使用的Bean。这些Bean被视为“备胎”,仅在没有其他Bean可以注入时才会被使用。


2.  与@Primary注解的关系:@Primary注解用于指定在多个同类型Bean中优先使用的Bean,而@Fallback注解则提供了一种机制,当没有其他Bean可用时,使用被标记为@Fallback的Bean。@Primary和@Fallback注解可以视为相反的补充:@Primary表示“直接用我”,而@Fallback表示“先别用我,先用其他Bean”。


3.  使用场景:在有多个同类型Bean的情况下,如果Spring根据类型找到了多个Bean,并且无法根据属性名匹配到Bean时,就会报错。此时,可以使用@Primary来解决,现在也可以使用@Fallback来提供备选方案来解决这个报错。


4.  多个@Fallback注解的Bean:与@Primary注解不同,@Primary的Bean只能有一个,但可以有多个@Fallback注解的Bean。一个人也可以都多个备胎嘛,想不到代码也这么无情。


b25a50e7485847adbd6be021ef89b04b.png

 

上面的代码注入了类型一样的 2 个 bean,但是名字不一样,一个是 orderService1,一个是 orderService2,但是 orderService1是一个备胎,只有当orderService2不能正常使用的时候,orderService 1 才会真正出场。

这个注解如果和@Profile 注解一起使用的话,在分析 Dpring 最终会使用哪个 bean 的时候需要结合当前使用的环境来进行分析。

通过使用@Fallback注解,开发者可以为Spring容器中的Bean提供更加灵活的备选方案,以应对不同的运行时情况。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

golang学习记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值