@Autowired使用说明
Posted liehen2046
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Autowired使用说明相关的知识,希望对你有一定的参考价值。
注入顺序
@Autowired先以类型进行注入,再以名称进行注入,而且@Resource以名称进行注入,不太推荐。
指定名称
@Autowired遇到多个同继承类时可能会出问题,建议带个@Qualifier指定下名称。
使用方式
建议不要用在字段上,可能因未初始化而报空指针,建议用在setter或构造器上。
初始化顺序
Java变量初始化顺序:静态变量或静态语句块 > 实例变量或初始化语句块 > 构造方法 > @Autowired
官方推荐写法
- 构造注入
@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;
- set注入
@RestController
public class PersonController
private PersonService personService;
@Autowired
@Qualifier("personService")
public void setPersonService(PersonService personService)
this.personService = personService;
以上是关于@Autowired使用说明的主要内容,如果未能解决你的问题,请参考以下文章
使用自定义 Autowired 时出现 NullPointerException