美文网首页
spring 3个依赖注入注解的区别

spring 3个依赖注入注解的区别

作者: 饱饱想要灵感 | 来源:发表于2023-03-28 20:03 被阅读0次

    @Autowired

    1、@Autowired是spring自带的注解,通过‘AutowiredAnnotationBeanPostProcessor’ 类实现的依赖注入;
    2、@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier;
    3、@Autowired有个属性为required,可以配置为false,如果配置为false之后,当没有找到相应bean的时候,系统不会抛错;
    4、@Autowired可以作用在变量、setter方法、构造函数上。

    @Inject

    1、@Inject是JSR330 (Dependency Injection for Java)中的规范,需要导入javax.inject.Inject;实现注入。
    2、@Inject是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Named;
    3、@Inject可以作用在变量、setter方法、构造函数上。

    @Resource

    1、@Resource是JSR250规范的实现,需要导入javax.annotation实现注入。
    2、@Resource是根据名称进行自动装配的,一般会指定一个name属性
    3、@Resource可以作用在变量、setter方法上。

    区别

    1、@Autowired是spring自带的,@Inject是JSR330规范实现的,@Resource是JSR250规范实现的,需要导入不同的包
    2、@Autowired、@Inject用法基本一样,不同的是@Autowired有一个request属性
    3、@Autowired、@Inject是默认按照类型匹配的,@Resource是按照名称匹配的
    4、@Autowired如果需要按照名称匹配需要和@Qualifier一起使用,@Inject和@Name一起使用

    相关文章

      网友评论

          本文标题:spring 3个依赖注入注解的区别

          本文链接:https://www.haomeiwen.com/subject/tajxddtx.html