代码之家  ›  专栏  ›  技术社区  ›  xetra11

Spring可以自动填充特定类型的列表吗?

  •  0
  • xetra11  · 技术社区  · 7 年前

    我想要一个列表,由特定类型的元素通过弹簧注入自动填充。

    @Component
    class Scratch {
     @Autowired
     List<Person> person;
    }
    

    这些是豆子:

    @Configuration
    class App {
    
      @Bean
      public Person coolPerson() {
       return new CoolPerson();
      }
    
      @Bean
      public Person stupidPerson() {
        return new stupidPerson();
      }
    
      @Bean
      public Person funnyPerson() {
        return new FunnyPerson();
      }
    
    }
    

    我喜欢的结果是 List<Person> 由三个元素填充。申报的其中一个 Bean Configuration 上面。

    如果这不可能通过春天的DI,我有一个黑客的方法吗?

    我认为春天是一种收集一切 豆子 在它的背景下。那么,访问这个上下文并更手动地填充列表怎么样,比如:

        @Component
        class Scratch {
          List<Person> person = SpringContext.getBeans(Person.class);
        }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   David Lavender    7 年前

    @Component
    public class Scratch {
        @Autowired
        List<Person> person;
    }
    

    Person

    List<MyInterface>