美文网首页
关于@Autowired使用的几点建议

关于@Autowired使用的几点建议

作者: 帅气滴糟老头 | 来源:发表于2019-01-04 15:52 被阅读0次

建议一:

优先选择@Autowired注入,而不是@Resource
注入原理:@Autowired会先按类型注入,然后按照名称注入,都无法找到唯一的一个实现类则报错。这于@Resource相反

建议二:

@Autowired最好与@Qualifier()一起使用,不要图省事,虽然大多数情况下只用@Autowired就可以正常注入

建议三:

@Autowired可以用在字段或者setter方法上或者构造器上。
但是不推荐用在字段上,容易发生空指针错误,推荐使用在构造器或者setter方法上,如下:

  1. 使用字段注入容易发生空指针异常
    下面的代码只做演示,实际开发中不会这样写
@RestController
public class PersonController {
    @Autowired
    @Qualifier("personService")
    private PersonService personService;
    private String name;

    // 构造方法
    public PersonController() {
        this.name = personService.getName(); // 这里会报空指针异常
    }
}

原因是构造方法先于@Autowired被初始化。
PS:Java变量的初始化顺序为:静态变量或静态语句块 –> 实例变量或初始化语句块 –> 构造方法 –> @Autowired

  1. 在构造器上使用:
    优点:
    ①可以防止上面所说的空指针异常
    ②可以明确成员变量的加载顺序
    下面是官方推荐的写法:
@RestController
public class PersonController {

    private final PersonService personService;

   /**
     * Spring Team建议:“始终在bean中使用基于构造函数的依赖注入。始终使用断言来强制依赖”。
     */
    @Autowired
    public PersonController(@Qualifier("personService") PersonService personService){
        Assert.notNull(personService, "personService must not be null");
        this.personService = personService;
    }
}
  1. 在setter方法上使用
@RestController
public class PersonController {

    private PersonService personService;

    @Autowired
    @Qualifier("personService")
    public void setPersonService(PersonService personService) {
        this.personService = personService;
    }
}

相关文章

  • 关于@Autowired使用的几点建议

    建议一: 优先选择@Autowired注入,而不是@Resource注入原理:@Autowired会先按类型注入,...

  • spring 的注释们

    @Autowired:使用@Autowired注释进行byType注入。(required = false)找不到...

  • 使用@Autowired注解自动装配的过程

    使用@Autowired注解来自动装配指定的bean。在使用@Autowired注解之前需要在Spring配置文件...

  • 短视频,抢占推荐位的几点建议!

    提高视频收录的几点建议 一、关于竖屏横屏问题: 强烈建议使用竖屏,横屏内容很难拿推荐喔~ 短视频内容只有15s,横...

  • spring @Primary @Autowired @Qual

    @Autowired 在使用spring开发过程中,我们基本上都是使用 @Autowired 这个注解,用来注入已...

  • 关于练琴的几点建议

    现如今,学习钢琴已经越来越成为一个孩子全面发展的刚需,在一线城市,一个班的孩子随便拎出一个来,有80%的可能性这...

  • 关于买房的几点建议

    为自己、为家人购置一套房产我想这是很多年轻人心里的目标,可也许也很多人会说:“买房啊!没钱啊!买不起啊!”怎么办呢...

  • 关于减肥的几点建议

    1.不熬夜。早点睡觉,每晚11点半之前入睡。 2.白天多喝白开水,补充水分。 3.吃完饭之后站一会儿。 4.最重要...

  • 关于选择的几点建议…

    1 今天早晨听十点人物志广播,题目是《80年代,被风吹散的绝代佳人们》,文章介绍了陈冲、张瑜、刘晓庆等80年代影视...

  • 关于理财的几点建议

    很多穷人会觉得没有钱,拿什么来理财?其实理财是先从你的思维练习的,当你能每个月固定的存一部分钱,忍受延期的享受时,...

网友评论

      本文标题:关于@Autowired使用的几点建议

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