spring 中的绑定注解
Binding Annotation in spring
我们正在使用 guice 进行依赖注入。
现在我们要使用 spring 引导编写新项目。由于我们使用的是 Spring Boot,我们认为使用 Spring 进行依赖注入比使用 guice 更好。
在 guice 中我们使用了 Binding Annoation。如果我们有多个 bean 可用并且可以根据注释注入,这将非常有用。
与我们在 Spring 中拥有的类似吗?我们是否需要相应地命名 bean 并将其与 @Autowire
和 @Qualifier
一起使用?
第一手例子:
public class MovieRecommender {
private final CustomerPreferenceDao customerPreferenceDao;
@Autowired
private MovieCatalog movieCatalog;
@Autowired
public MovieRecommender(CustomerPreferenceDao customerPreferenceDao) {
this.customerPreferenceDao = customerPreferenceDao;
}
// ...
}
这是一个询问 Spring 框架的非常基本概念的问题,即 bean 和依赖注入。
我建议 运行 像 kickstart-sample 这样的示例项目之一,并在玩代码的同时让自己熟悉 Spring。
然后跳转到官方文档参考也不错。因为在使用注解的时候需要注意的选项比较多。
你可以使用
@Autowired
当你有一个某种类型的 bean 时。
@Autowired
private MyBean myBean;
对于许多 beans 示例配置 class:
@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 并且您想要一些特定的时。
@Autowired
@Qualifier("myFirstBean")
private MyBean myFirstBean;
@Autowired
@Qualifier("mySecondBean")
private MyBean mySecondBean;
当你想注入所有相同类型的 bean 时,你可以:
@Autowired
private List<MyBean> myBeans;
我们正在使用 guice 进行依赖注入。 现在我们要使用 spring 引导编写新项目。由于我们使用的是 Spring Boot,我们认为使用 Spring 进行依赖注入比使用 guice 更好。
在 guice 中我们使用了 Binding Annoation。如果我们有多个 bean 可用并且可以根据注释注入,这将非常有用。
与我们在 Spring 中拥有的类似吗?我们是否需要相应地命名 bean 并将其与 @Autowire
和 @Qualifier
一起使用?
第一手例子:
public class MovieRecommender {
private final CustomerPreferenceDao customerPreferenceDao;
@Autowired
private MovieCatalog movieCatalog;
@Autowired
public MovieRecommender(CustomerPreferenceDao customerPreferenceDao) {
this.customerPreferenceDao = customerPreferenceDao;
}
// ...
}
这是一个询问 Spring 框架的非常基本概念的问题,即 bean 和依赖注入。
我建议 运行 像 kickstart-sample 这样的示例项目之一,并在玩代码的同时让自己熟悉 Spring。
然后跳转到官方文档参考也不错。因为在使用注解的时候需要注意的选项比较多。
你可以使用
@Autowired
当你有一个某种类型的 bean 时。
@Autowired
private MyBean myBean;
对于许多 beans 示例配置 class:
@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 并且您想要一些特定的时。
@Autowired
@Qualifier("myFirstBean")
private MyBean myFirstBean;
@Autowired
@Qualifier("mySecondBean")
private MyBean mySecondBean;
当你想注入所有相同类型的 bean 时,你可以:
@Autowired
private List<MyBean> myBeans;