【发布时间】:2014-03-05 17:28:39
【问题描述】:
我是一名开发人员,开发基于 Spring 框架的 Java Web 应用程序。 此应用程序将部署到几个不同的客户。 有一个类包含一些对每个客户端都不同的业务逻辑。 从 Spring 框架的角度来看,只需为每个客户端连接适当的类(作为 bean)就足够了。
但是,开发人员不负责应用程序的部署。运营团队负责,让他们打开 WAR 文件并为每个客户端部署修改 spring 配置 XML 可能对他们要求太多了。属性文件没问题,但修改内部文件 - 可能不行。
还有其他人想出解决这个问题的策略吗?
编辑:
举个例子说明我在说什么:
public interface IEngine {
void makeNoise();
}
public class Car {
public void setEngine(IEngine engine) {
this.engine = engine;
}
}
客户A的业务逻辑:
HeavyDutyEngine implements IEngine {
public void makeNoise() {
System.out.println("VROOOM!");
}
}
客户B的业务逻辑:
LightWeightEngine implements IEngine {
public void makeNoise() {
System.out.println("putputput");
}
}
在 Spring 配置 XML 中:
对于客户端 A,它可能如下所示:
<bean id="hdEngine" class="HeavyDutyEngine" />
<bean id="lwEngine" class="LightWeightEngine" />
<bean id="car" class="Car">
<property name="engine" ref="hdDngine">
</bean>
对于客户端 B,它可能如下所示:
<bean id="hdEngine" class="HeavyDutyEngine" />
<bean id="lwEngine" class="LightWeightEngine" />
<bean id="car" class="Car">
<property name="engine" ref="lwEngine">
</bean>
【问题讨论】:
-
我们需要看看各个客户端之间的业务逻辑有哪些变化。
-
它基本上只是根据客户端换入/换出某些bean。
标签: java spring customization