前言:
在看@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
更多推荐
SpringBoot中的SearchStrategy介绍
发布评论