提问者:小点点

Spring绑定标注


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

在guice中,我们使用了绑定注释。如果我们有多个可用的bean,这将非常有用,并且可以根据注释进行注入。

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


共2个答案

匿名用户

当您有一个某种类型的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

相关问题