我们正在使用guice进行依赖注入。 现在我们想用spring boot编写新项目。由于我们使用的是Spring Boot,因此我们认为最好使用Spring进行依赖注入而不是guice。
在guice中,我们使用了Binding Annoation。如果我们有多个可用的bean并且可以根据注释注入它,这非常有用。
与我们在Spring中的相似?我们是否需要相应地命名bean并将其与@Autowire
和@Qualifier
一起使用?
答案 0 :(得分:2)
你可以使用
@Autowired
当你有一个某种类型的bean时。
@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();
}
}
@Autowired
@Qualifier("someName")
当你有多个某种类型的bean时,你需要一些特定的bean。
@Autowired
@Qualifier("myFirstBean")
private MyBean myFirstBean;
@Autowired
@Qualifier("mySecondBean")
private MyBean mySecondBean;
当您想要注入相同类型的所有bean时,您可以:
@Autowired
private List<MyBean> myBeans;
答案 1 :(得分:0)
第一手示例:
public class MovieRecommender {
private final CustomerPreferenceDao customerPreferenceDao;
@Autowired
private MovieCatalog movieCatalog;
@Autowired
public MovieRecommender(CustomerPreferenceDao customerPreferenceDao) {
this.customerPreferenceDao = customerPreferenceDao;
}
// ...
}
这是一个问题,询问Spring Framework的基本概念,即bean和依赖注入。
我建议运行一个样本示例项目,如kickstart-sample,并在玩代码时熟悉Spring。
然后跳转到官方文档以供参考也不错。因为使用注释时需要注意更多选项。