为了账号安全,请及时绑定邮箱和手机立即绑定

如何在没有注入列表的情况下直接获取Spring中最高排序的bean?

如何在没有注入列表的情况下直接获取Spring中最高排序的bean?

猛跑小猪 2021-08-04 10:05:38
有 3 个类U, V,W实现接口A,并由@OrderSpring的注解以不同的顺序值进行注解。我现在通过注入List<A>然后搜索List<A>.有没有更直接的方法来获得最高优先级的 bean 而不注入整个集合A?
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

据我所知,在 spring 中没有任何方法可以直接获取最高阶的 bean。您的选择是

  • 遍历 order beans 并获得最高的一个 - 你已经做了什么

  • 创建您自己的注释,例如@HighestOrdered,并编写您自己的 bean 自动装配后处理器以仅获取最高排序的后处理器(此处为自定义后处理器的示例)

其他一些选项是

  • 使用 @Primary 来表示您更喜欢使用的 bean

  • 为它使用@Qualifier

但这些都与您要问的完全不同,并且有一些缺点。

如果你严格想要做你在问题中提出的问题,我只会做你已经在做的事情并迭代它们,选择最高的顺序。


查看完整回答
反对 回复 2021-08-04
  • 1 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信