Spring组合注解&注解继承

组合注解

被注解的注解称为组合注解。

1.好处

 

  • 简单化注解配置,用很少的注解来标注特定含义的多个元注解
  • 提供了很好的扩展性,可以根据实际需要灵活的自定义注解。

2 如何使用

(1)自定义一个组合注解

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration//实际上就是一个bean注解
@ComponentScan//自动扫描对应value(package路径)值下面的所有bean
public
@interface  WiselyConfiguration {
    String[] value() default{};//可以不写,实际在@ComponentScan注解中已经定义过,所以可以拿过来直接用
}

(2)使用自定义注解

//@Configuration //属性注解
//@ComponentScan("com.gdb.spingboot.service")  // 要扫描的bean路径
@WiselyConfiguration(value = "com.gdb.spingboot.service") // 自定义注解,扫描的所有的bean来源于value值所对应的包路径下
public class  ElConfig {}

组合注解,和上面两个注解实现的功能完全一致,所以如果在繁琐的注解被多次使用的情况下,可以考虑自定义组合注解。

注解继承

@Inhberited注解可以让指定的注解在某个类上使用后,这个类的子类也将自动被该注解标记。

@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Hello {
}
public class AnnotationTest3 {
    //在基类上使用被@Inherited标记了的注解@Hello
    @Hello
    class Base{}
    //派生类没有直接注解@Hello
    class Derived extends Base {}
    public static void main(String[] args) {
    //派生类也会自动被注解@Hello标记。
        if( Derived.class.isAnnotationPresent(Hello.class)){
        Hello  hello = (Hello)Derived.class.getAnnotation(Hello.class);
        System.out.println("Hello");
        }
    }
}

注解的其它事项

(1)当注解中含有数组属性时,使用{}赋值,各个元素使用逗号分隔。

(2)注解的属性可以是另外一个注解。

(3)注解的属性可以是另外一个注解的数组。

(4)注解的默认属性是value,只有一个value属性时可以不写value=xxx,直接写值即可。

(5)注解的属性的默认值使用default来定义。

//定义注解
@Retention(RetentionPolicy.RUNTIME)
public @interface SomeFuture {
String value();//默认的属性
int[]  arrayValue(); //数组
Hello  helloValue();//是另外一个注解@Hello
Hello[] helloArrayValue() default {@Hello,@Hello}; //注解的数组,而且提供默认值。
}
//使用注解
@SomeFuture(
value="hello", //默认属性
arrayValue={1,2,3},//数组属性
helloValue=@Hello,//属性是另外一个注解
helloArrayValue={@Hello,@Hello,@Hello}//属性是另外一个注解的数组。
)
public class AnnotationTest4 {
}

 

最后欢迎大家访问我的个人网站:1024s​​​​​​​

 

 

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值