Spring注解

    技术2023-09-17  96

    @AliasFor

    1.用于注解的两个属性互换别名,basePackages和value互换别名 ,这样做的目的是不管将值赋值给这两个属性中的哪一个,他们表示的都是同一个含义

    举例:@ComponentScan 

    @AliasFor("basePackages") String[] value() default {}; @AliasFor("value") String[] basePackages() default {};

    不管扫描包字符串赋值给value还是basePackages他们表示同一个含义

    2.继承

    @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @Documented public interface MyTestConfig { @AliasFor(annotation = ContextConfiguration.class, attribute = "locations") String[] value() default {}; @AliasFor(annotation = ContextConfiguration.class, attribute = "locations") String[] groovyScripts() default {}; @AliasFor(annotation = ContextConfiguration.class, attribute = "locations") String[] xmlFiles() default {}; }

    此时这个三个属性均继承ContextConfiguration下的locations属性即ContextConfiguration的location的值也同样是这三个属性的值,又因为他们三个“继承”同一个注解的同一个属性,因此这个三个属性又可以相互成为彼此的别名,也就是这三个属性含义是一样的。总之只要含义相同的属性就可以进行别名互换。作用应该是在开发过程中为了满足不同环境中属性的含义的可读性

    Processed: 0.015, SQL: 9