springboot注解@Repeatable

@Repeatable

   对同一种注解多次使用就会使用到@Repeatable

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Repeatable {

举例:

  1. 申明RolesTest注解包含多重角色

@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface RolesTest {
    RoleTest[] value();
}

2.申明RoleTest注解

@Documented
@Repeatable(RolesTest.class)
public @interface RoleTest {
    String value() default "";
}

3. 申明测试类,设定多重角色

@RoleTest("apple")
@RoleTest("pear")
@RoleTest("orange")
public class MainRepeatable {

}

4. 单元测试:

    @Test
    public void testRepeat(){
        if(MainRepeatable.class.isAnnotationPresent(RolesTest.class)) {
            RolesTest rt=MainRepeatable.class.getAnnotation(RolesTest.class);
            for(RoleTest t:rt.value()){
                logger.info(t.value());
            }
        }
    }

5.结果:

发布了71 篇原创文章 · 获赞 1 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/ccr1001ccr1001/article/details/88607812