原文网址:Spring--注入的方式--方法/实例_IT利刃出鞘的博客-CSDN博客
简介
说明
本文用实例介绍SpringBoot如何装配bean。
用法介绍
下边@Autowired基本可以用于@Value。但有一点要注意:@Value用于参数时,@Value不能省略,例如:
String name;
public abc(@Value(${"myName"}String myName) {
this.name = myName;
}
方式1:field注入
示例
@Controller
public class FooController {
@Autowired
private FooService fooService;
//简单的使用例子,下同
public List<Foo> listFoo() {
return fooService.list();
}
}
优点
- 代码少,简洁明了。
- 新增依赖十分方便,不需要修改原有代码
缺点
- 容易出现空指针异常。Field 注入允许构建对象实例时依赖的对象为空,导致空指针异常不能在启动时就爆出来,只能在用到它时才发现。
空指针异常不是必现的,与bean的实例化顺序有关。有时,把依赖的bean改个名字就会报空指针异常。 - 会出现循环依赖的隐患。
方式2:构造器注入
上边是文章的部分内容,为便于维护,全文已转移到此网址:Spring-注入的方式-方法/实例 - 自学精灵