1.概述
从Spring 2.5开始,spring框架引入了由@Autowired
注解驱动的依赖注入。此注释允许Spring解析并将有依赖关系的bean注入到bean中。
在本文中,我们将了解如何启用自动装配、如何设置自动装配、设置@Autowired可选依赖属性、使用@Qualifier注释解决bean冲突以及潜在的异常场景。
2.启用@Autowired注解
如果应用程序是基于Java的配置,则可以使用*AnnotationConfigApplicationContext
*来加载注释配置,从而启用@Autowired
注解,如下所示:
@Configuration
@ComponentScan("com.baeldung.autowire.sample")
public class AppConfig {
}
如果使用基于Spring XML的配置,可以在Spring XML文件中配置如下标签来启用@Autowired
注解:
<context:annotation-config/>
3.使用@Autowired
一旦启用了@Autowired,自动装配就可以用于属性、setter和构造函数。
3.1 @Autowired属性
注释可以直接在属性上使用,因此不需要getter和setter:
@Component("fooFormatter")
public class FooFormatter {
public String format() {
return "foo";
}
}
@Component
public class FooService {
@Autowired
private FooFormatter fooFormatter;
}
在上面的例子中,创建FooService时,Spring查找并注入fooFormatter。
3.2 @Autowired setter方法
@Autowired注解可以用在setter方法上。在下面的示例中,当在setter方法上使用注释时,在创建FooService时,将使用FooFormatter实例调用setter方法:
public class F