我正在审查开源 Spring 项目。我对这里的注释的使用感到困惑。我想请教一下。
@Target(ElementType.METHOD)
@Retention(RUNTIME)
@Bean
public @interface Merge {
@AliasFor("targetRef")
String value() default "";
@AliasFor("value")
String targetRef() default "";
Placement placement() default Placement.APPEND;
int position() default 0;
Class<MergeBeanStatusProvider> statusProvider() default MergeBeanStatusProvider.class;
boolean early() default false;
}
Run Code Online (Sandbox Code Playgroud)
此处创建了一个名为 Merge 的注释。它有不同的参数和默认值。
@Configuration
public class LocalConfiguration {
@Merge(targetRef = "mergedList", early = true)
public List<String> blLocalMerge() {
return Arrays.asList("local-config1", "local-config2");
}
}
Run Code Online (Sandbox Code Playgroud)
这是@Merge我随机选择的任何类中注释的用法。
当我检查代码时,我找不到任何与 Merge 注释的实现相关的类。顺便说一下,我遇到的这个问题不仅仅是关于这个注释。我检查过的几乎所有注释都没有以任何方式实现。如果我们从这个注释开始,我想我会理解其他人。这个注解有什么作用?它给使用它的地方带来了什么样的信息。应用程序如何在没有在任何地方实现的情况下理解该注释在运行时的作用。
谢谢。