弹簧绑定注释

时间:2016-03-28 12:55:56

标签: spring dependency-injection guice

我们正在使用guice进行依赖注入。 现在我们想用spring boot编写新项目。由于我们使用的是Spring Boot,因此我们认为最好使用Spring进行依赖注入而不是guice。

在guice中,我们使用了Binding Annoation。如果我们有多个可用的bean并且可以根据注释注入它,这非常有用。

与我们在Spring中的相似?我们是否需要相应地命名bean并将其与@Autowire@Qualifier一起使用?

2 个答案:

答案 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。

然后跳转到官方文档以供参考也不错。因为使用注释时需要注意更多选项。

http://docs.spring.io/spring/docs/4.3.0.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#beans-autowired-annotation