Spring的Bean注入的几种方式
依赖注入(Dependency Injection, DI)和IoC,作为Spring的核心,Spring中的一切对象都被IoC容器托管,当一个对象需要使用另一个对象中的方法时,可以通过注入的方式,而不是通过手动创建来使用,有几种注入方式。
字段注入
最常用,最简单的一种方式。在类属性上添加@Autowired
或者@Resource
注解,实现对象的注入。
1 |
|
两个注解的区别:
@Autowired
是首先根据对象的类型去查找bean,如果是接口,可能有多个相同类型的实现,则可以与Qualifier
组合使用,指定名称查找;@Resource
则会首先根据对象的名字去查找,查找不到则再根据类型查找,name指定具体的名字。
set方法注入
官方不提倡Field注入的方式,使用的话会出现如下的提示:
这时可以使用set方法上注入。
1 |
|
构造方法注入
构造方法中,将需要使用的对象作为构造参数传递。
1 | public AggregateService(ServiceOne serviceOne, ServiceTwo serviceTwo2) { |
这种方法的缺点很多,当需要注入的对象很多的时候,构造函数的参数也会变多,代码不整洁。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 张国丰!
评论