@Repository详解

不多废话,直接看源码

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Repository {
    @AliasFor(
        annotation = Component.class
    )
    String value() default "";
}

分析如下

  • @Component代表@Repository可以把一个类组件加入到IOC容器中

  • @Target,target注解决定MyAnnotation注解可以加在哪些成分上,如加```xml

    ElementType.TYPE // 作用在类身上
    ElementType.Filed) //作用到属性身上
    ElementType.METHOD //作用到方法身上

  • @Retention注解决定MyAnnotation注解的生命周期

    生命周期长度 SOURCE < CLASS < RUNTIME ,所以前者能作用的地方后者一定也能作用

    source:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;被编译器忽略,如果只是做一些检查性的操作,
    比如 @Override 和 @SuppressWarnings,则可选用 SOURCE 注解

    class:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期,如果要在编译时进行一些预处理操作,比如生成一些辅助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值