How to Autowire Bean of generic type in Spring?

后端 未结 6 438
盖世英雄少女心
盖世英雄少女心 2020-11-28 03:51

I have a bean Item which is required to be autowired in a @Configuration class.

@Configuration
public class AppConfig {

          


        
6条回答
  •  野性不改
    2020-11-28 04:31

    Below is a solution I made to answer this question:

    
            List listItem= new ArrayList<>();
    
            ResolvableType resolvableType = ResolvableType.forClassWithGenerics(List.class, String.class);
            RootBeanDefinition beanDefinition = new RootBeanDefinition();
            beanDefinition.setTargetType(resolvableType);
            beanDefinition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
            beanDefinition.setAutowireCandidate(true);
    
            DefaultListableBeanFactory bf = (DefaultListableBeanFactory) configurableWebApplicationContext.getBeanFactory();
    
            bf.registerBeanDefinition("your bean name", beanDefinition);
            bf.registerSingleton("your bean name", listItem);
    

提交回复
热议问题