SpringBoot中的SearchStrategy介绍

本文介绍 Spring Boot 中 SearchStrategy 枚举的作用及其使用场景,详细解析了 CURRENT、ANCESTORS 和 ALL 三种搜索策略的区别,并讨论了它们在 @ConditionalOnBean 注解中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

在看@ConditionalOnBean注解的实现的时候,看到了SearchStrategy(直译过来是搜索策略)这个枚举类型,比较好奇。

SearchStrategy:

package org.springframework.boot.autoconfigure.condition;

public enum SearchStrategy {
    CURRENT,
    /** @deprecated */
    @Deprecated
    PARENTS,
    ANCESTORS,
    ALL;

    private SearchStrategy() {
    }
}

在官方文档中,它被解释为 bean工厂层次结构中bean的一些命名搜索策略

枚举常量:

它的枚举常量有:

  • ALL:搜索整个层次结构,@ConditionOnBean中默认是ALL。

  • ANCESTORS:搜索所有祖先,但不搜索当前上下文。

  • CURRENT:仅搜索当前上下文。

  • PARENTS:已过时,搜索所有父母和祖先,但不是当前的上下文(在SpringBoot 2.0中,这个常量将被移除)。 

方法:

values()

public static  SearchStrategy [] values()

按照声明的顺序返回一个包含此枚举类型常量的数组。此方法可用于迭代常量,如下所示:

for(SearchStrategy c:SearchStrategy.values())
    System.out.println(C);

返回:包含此枚举类型常量的数组,按声明的顺序排列

valueOf(String name)

public static  SearchStrategy  valueOf(String  name)

返回具有指定名称的此类型的枚举常量。该字符串必须与用于声明此类型中的枚举常量的标识符完全匹配。(不允许使用无关的空白字符。)
参数:name - 要返回的枚举常量的名称。
返回:具有指定名称的枚举常量
抛出:
IllegalArgumentException - 如果此枚举类型没有指定名称的常量
NullPointerException - 如果参数为null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值