我有一个相当直接的弹簧集成应用程序,它轮询外部FTP站点,使用一些内部业务逻辑处理任何找到的文件,然后通过FTP发布结果文件。目前,当我们添加新客户时,我们复制XML配置文件和相应的属性文件,并在所有bean定义,bean引用和属性上更改前缀。然后,我们将这些添加到XML配置文件中,该文件只为所有现有客户及其属性执行导入:
<property-placeholder location="
file:config/application.properties
,file:config/test-customer1.properties
,file:config/test-customer2.properties
"/>
<import resource="test-customer1-context.xml" />
<import resource="test-customer2-context.xml" />
除了bean名称中的唯一客户前缀之外,这些xml文件是相同的。似乎必须有一种方法让我重用具有不同属性集的单个XML文件(或Java Config对象)。我的第一个想法是实现自定义CustomerScope,但我不知道范围实现如何知道正确的客户。
关于如何实现这一点的任何想法?
根据要求,客户上下文文件样本
<bean id="testClient1RequestQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="${test.client1.in.queue}"/>
</bean>
<bean id="testClient1ResultsQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="${test.client1.results.queue}"/>
</bean>
...