我们正在使用guice进行依赖注入。现在我们想使用Spring boot编写新项目。由于我们使用的是Spring Boot,我们认为使用Spring进行依赖注入比guice更好。
在guice中,我们使用了绑定注释。如果我们有多个可用的bean,这将非常有用,并且可以根据注释进行注入。
与Spring中的类似?我们是否需要相应地命名bean并将其与@Autowire
和@Qualifier
一起使用?
当您有一个某种类型的bean时,您可以使用@Autowed
。
@Autowired
private MyBean myBean;
对于许多bean示例配置类:
@Configuration
public class MyConfiguration {
@Bean(name="myFirstBean")
public MyBean oneBean(){
return new MyBean();
}
@Bean(name="mySecondBean")
public MyBean secondBean(){
return new MyBean();
}
}
当您有多个某种类型的bean并且您想要一些特定的bean时,使用
。@Qualifier("一些名称")
@Autowed
@Autowired
@Qualifier("myFirstBean")
private MyBean myFirstBean;
@Autowired
@Qualifier("mySecondBean")
private MyBean mySecondBean;
当您想注入所有相同类型的bean时,您可以:
@Autowired
private List<MyBean> myBeans;
第一手例子:
public class MovieRecommender {
private final CustomerPreferenceDao customerPreferenceDao;
@Autowired
private MovieCatalog movieCatalog;
@Autowired
public MovieRecommender(CustomerPreferenceDao customerPreferenceDao) {
this.customerPreferenceDao = customerPreferenceDao;
}
// ...
}
这是一个要求Spring Framework的最基本概念的问题,即bean和依赖注入。
我的建议是运行一个示例示例项目,例如kickstar-sample,并在玩代码的同时熟悉Spring。
那么跳转到官方文档进行参考也不错。因为在使用注解时需要注意的选项更多。
http://docs.spring.io/spring/docs/4.3.0.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#beans-autowired-annotation