在Spring4.0里,泛型是可以用来决定哪一个bean需要依赖注入的(无论xml配置还是注解配置)。
用一个简单的例子解释。假设你有一个使用了泛型的DAO.
- public class Dao<T> {
- ...
- }
现在创建两个实现类的bean:
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- @Configuration
- public class MyConfiguration {
- @Bean
- public Dao<Person> createPersonDao() {
- return new Dao<Person>();
- }
- @Bean
- public Dao<Organization> createOrganizationDao() {
- return new Dao<Organization>();
- }
- }
在Spring4.0里,Spring容器可以使用泛型决定依赖注入。我们简单改变泛型的类型可自动注入所需要的bean。
- @Autowired
- private Dao<Person> dao;