Spring中有没有办法自动assembly给定类型的所有依赖项?
我正在为给定的类使用基于注释的连接(即@Configurable(autowire=Autowire.BY_TYPE)
),并且我想将给定类型的所有bean作为列表连接到它中:
应用环境:
自动加入的课程:
@Configurable(autowire=Autowire.BY_TYPE) public class Target { ... public void setConfigurers(List configurers) { ... } }
所有依赖项都实现了一个名为Configurer
的通用接口
有没有办法让这项工作将一个类型的所有依赖项连接在一个集合中并在必要时注入,或者我应该在XML中定义一个 ?
是,
@Inject private List configurers;
工作,你得到一个实现该接口的所有bean的列表。 (多种变体 – @Inject
或@Autowired
,字段,setter或构造函数注入 – 所有工作)
这应该工作:
@Configurable(autowire=Autowire.BY_TYPE) public class Target { @Autowired public void setConfigurers(List configurers) { ... } }
这在Spring手册的3.9.2节中描述:
通过将注释添加到期望该类型数组的字段或方法,也可以从ApplicationContext提供特定类型的所有bean […]同样适用于类型化集合。