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
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)
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.