gpt4 book ai didi

java - 管理 WAR 上的补丁信息

转载 作者:行者123 更新时间:2023-11-30 07:08:30 26 4
gpt4 key购买 nike

在 j2ee WAR 文件上管理补丁版本信息的最佳/正确方法是什么
我想在一个 WAR 文件上维护补丁信息,以便在应用程序运行后可以在应用程序内部显示此信息以进行维护。
正在考虑几种可能的方法:

  1. 使用数据库表——(我想避免这种方法)
    • 缺点
      • 将 WAR 版本耦合到 DB
      • 带有补丁的数据库脚本的额外开销。
  2. 将内部 XML 文件添加到资源中,然后读取和分析/解析它
    • 缺点
      • 访问 XML 的问题(物理路径问题?)
  3. 将补丁信息添加到 MANFIEST 文件
    • 缺点
      • 无法在应用程序中显示它?

我想知道是否有更多方法以及满足此类要求的最佳方法是什么。
谢谢

最佳答案

考虑到您的问题,您可以通过多种方式存储您的版本:

1.数据库表

pro : ?
cons: infra dependant, need to update db, can be desynchronized
conclusion :please avoid that, it is dependant of your infrastructure.

2。属性文件:最佳选择!

pro: simple to integrate, ressource is localized by java.util.Properties, implement in 15 min.
cons: ?
conclusion: Simple and easy; the best choice for me. Take a look to the code

3。 Manifest

pro: may work
cons: bad practice to use a defined component for another purpose, bad architecture practice
conclusion: Avoid this solution, it's a bad architecture practice.

获胜者:属性代码示例,可在 15 分钟内完成测试。

public static Properties loadProperties() {
String resourceName = "version.properties";

Properties prop = new Properties();
try {
prop.load(DBTools.class.getResourceAsStream(resourceName));
logger.trace(String.format("config file %s loadded with success !", resourceName));
} catch (IOException e) {
logger.error(String.format("config file %s is not loaded!", resourceName));
}
return prop;
}



version.properties File
APP-VERSION=1.12.4-REV2345-NIGHT

在您的应用中,当您想要检索 app_version 时,只需执行以下操作:

property.getProperty("APP-VERSION");

关于java - 管理 WAR 上的补丁信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23934953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com