我们正在实现一个企业财务Web应用软件。我们使用 spring、hibernate、oracle(DB)、JSF。需求在软件的维护阶段发生变化,并且由于以前版本的软件的兼容性,我们必须同时拥有某些实体(还有管理器、表单……类)的多个版本。这种类的更改包括:添加/删除字段、更改字段、添加/删除类……一般来说,此问题是同时运行多个版本的软件。请帮我找到解决这个问题的方法。
澄清:
这个问题与软件产品线中的“时间变化”类似(更多信息请参见elsner_vamos2010)。这意味着我们可能同时拥有一个类的多个版本,并且我们必须使用(或日期)参数获取类。在每个日期,必须使用类的一个版本,因为与该日期的程序状态兼容。我们使用 XML 文件在 Bean 类上解决这个问题,并获取带有日期的类版本。因此,程序知道必须为该程序状态运行什么 bean(其他实体的日期)。
但是对于spring中的其他对象类型如entity、jsp、form我们就无法解决吗?
最佳答案
您可以在不同的 WAR/EAR 中部署项目的不同版本。在这种情况下,您的容器将自动处理它们。每个war都会加载自己的类加载器,因此同一个类(包和类名)的不同版本不会交叉。 这个选项足够好吗?
关于java - 如何同时管理多个版本的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7498823/