Is there a way in Spring to autowire all dependencies of a given type?

前端 未结 2 1658
北海茫月
北海茫月 2020-12-16 20:29

I\'m using annotations-based wiring (ie @Configurable(autowire=Autowire.BY_TYPE)) for a given class, and I\'d like to wire all beans of a given type into it as

相关标签:
2条回答
  • 2020-12-16 21:07

    Yes,

    @Inject
    private List<Configurer> configurers;
    

    works, and you get a list of all beans implementing the interface. (multiple variations - @Inject or @Autowired, field, setter or constructor injection - all work)

    0 讨论(0)
  • 2020-12-16 21:16

    This should work:

    @Configurable(autowire=Autowire.BY_TYPE) 
    public class Target {
    
        @Autowired
        public void setConfigurers(List<Configurer> configurers) { ... }
    
    }
    

    This is described in section 3.9.2 of the Spring manual:

    It is also possible to provide all beans of a particular type from the ApplicationContext by adding the annotation to a field or method that expects an array of that type [...] The same applies for typed collections.

    0 讨论(0)
提交回复
热议问题