@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Component { String value() default ""; }@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Configuration {String value() default ""; }
我有一個(gè)對(duì)象被@Configuration注解,那我怎么知道它還是被Component注解的?@Interface
和接口Annotation
是什么關(guān)系?
有一個(gè)注解了@Configuration的對(duì)象, obj.getClass().getAnnotation(Configuration.class).getClass()==Configu??ration.class
結(jié)果是false,obj.getClass().getAnnotation(Configuration.class) instanceof Configuration
為true,obj.getClass().getAnnotation(Configuration.class) instanceof Component
為false
@Component
只是@Configuration
的注解聲明,并不表示@Configuration
就是@Component
類型
注:Meta-Annotations
并不是Annotation
的原生功能,只是在spring
中實(shí)現(xiàn)了這種機(jī)制。如果單純的使用原生的Annotation
則需要自己解析Meta-Annotations
實(shí)現(xiàn)相應(yīng)的功能才行。
我有一個(gè)對(duì)象被@Configuration注解,那我怎么知道它還是被Component注解的?
Annotation
也可以獲取自身的注解。
沒聽懂
@interface
是聲明注解的關(guān)鍵字(與class/interface
一樣)