@Retention这个注解只是用来标注自定义的注解的存在生命周期。
@Retention注解属性值
public enum RetentionPolicy {
/**
* Annotations are to be discarded by the compiler.
* 注解在编译期间会被丢弃,就是如果使用这个属性,这个注解只会保留在源码上,编译之后是没有的。
*/
SOURCE,
/**
* Annotations are to be recorded in the class file by the compiler
* but need not be retained by the VM at run time. This is the default
* behavior.
* 这个是默认值,保留在编译之后的class上,运行的时候获取不到。
*/
CLASS,
/**
* Annotations are to be recorded in the class file by the compiler and
* retained by the VM at run time, so they may be read reflectively.
* 保留在运行期间,在运行的时候可以通过工具类获取到这个注解,这个注解的属性没有什么实际意义。
* @see java.lang.reflect.AnnotatedElement
*/
RUNTIME
}
使用
NacosPropertySources这个注解指定的就是运行期间的生命周期。
总结
这个注解好像没啥用,哈哈哈。