有没有办法在spring配置文件中重用?

我有一堆规则要注入一组类,如下所示:

                  

如何在与normalInvRulesprepaidInvRules相对应的列表中包含通用规则列表?

规则的数量(例如rule1,rule2等)更多,数字组(normalInvRules,prepaidInvRules等)也更多。 所以,我想知道是否有办法避免重复共同的规则,只列出特定的规则,并包括对公共列表的引用。

有一个名为“集合合并”的function就是这样做的。 见3.3.3.4.1节。 我收集的关于这个主题的Spring文档或2008年博客文章(带有一个例子)中的 “集合合并”。

我喜欢@GreyBeardedGeek建议的方法,只想提出一些建议:

一个。 使用@Configuration与xml中的基本规则列表一起使用它:

 @Configuration @ImportResource("classpath:/baseconfig.xml") public static class RulesConfiguration{ @Resource List commonRules; @Bean public List normalInvRules(){ List rules = new ArrayList(); rules.addAll(commonRules); rules.add(new Rule()); return rules; } } 

湾 使用自定义工厂bean,负责扩展列表:

 class ListExpandingFactoryBean implements FactoryBean>{ private List baseList; private List extendedList; @Override public List getObject() throws Exception { List consolidatedList = new ArrayList(); consolidatedList.addAll(baseList); consolidatedList.addAll(extendedList); return consolidatedList; } @Override public Class getObjectType() { return List.class; } @Override public boolean isSingleton() { return false; } public void setBaseList(List baseList) { this.baseList = baseList; } public List getExtendedList() { return extendedList; } public void setExtendedList(List extendedList) { this.extendedList = extendedList; } } 

并以这种方式使用它:

        

谢谢你的回复。 这就是我最终使用Collection Merging解决它的方法:

                             

您可以创建一个具有通用规则的类,并在其他规则中自动连接它们? 那不行吗?

您可以使用XML配置采用相同的方法,并使用ref属性注入它。