@Repository详解

本文详细解析了@Repository注解的使用,包括其在@Component中的角色,@Target和@Retention的作用。通过示例说明了如何指导Spring创建并管理组件实例,并对比了@Autowired和@Resource的区别。文中还提醒开发者注意同名类可能导致的冲突问题,并分享了作者的个人学习和工作经验。
摘要由CSDN通过智能技术生成

不多废话,直接看源码

@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文件时候被遗弃,这是默认的生命周期,如果要在编译时进行一些预处理操作,比如生成一些辅助

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值