java - 从 xml JSF/Java 配置 web-app 数据目录

标签 java jsf app-config

我不知道如何在我的应用程序上实现它。

我想要一个 xml(或某个文件),负责应用程序管理的人员可以在其中选择 Root_Dir 的位置。

现在它是硬编码的,比如 C:\MyAppRootDir 但我希望管理员可以随时修改此路径。

有什么想法吗?

干杯

最佳答案

有几种方法可以为 webapp 提供外部配置。

  1. 创建一个属性文件并将其放在 webapp 的运行时类路径所涵盖的路径之一中,或者将其路径添加到 webapp 的运行时类路径中。

    例如/path/to/config.properties 包含此内容

    xmlrootdir=C:\MyAppRootDir
    

    您将能够通过类加载器获取它。

    Properties properties = new Properties();
    properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties"));
    String xmlrootdir = properties.getProperty("xmlrootdir");
    // ...
    

    根据您的问题历史记录,您正在使用/以 Tomcat 为目标。管理员可以编辑其 /conf/catalina.propertiesshared.loader 条目以指向此属性文件所在的文件夹。

    shared.loader=/path/to
    
  2. 将 VM 参数添加到 Tomcat 启动脚本。

    -Dconfig.xmlrootdir=C:\MyAppRootDir
    

    可用方式如下:

    String xmlrootdir = System.getProperty("config.xmlrootdir");
    // ...
    
  3. 设置环境变量。

    SET CONFIG_XMLROOTDIR=C:\MyAppRootDir
    

    可用方式如下:

    String xmlrootdir = System.getenv("CONFIG_XMLROOTDIR");
    // ...
    

关于java - 从 xml JSF/Java 配置 web-app 数据目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820853/

相关文章:

java - Android:如何使用图像按钮?

java - 数组的数组在这里做正确的事情吗?

javascript - 如何将 javascript 创建的 blob 传递给 JSF bean

asp.net - 覆盖 app.config(或 web.config)中的 ConnectionStrings

c# - 如何在 .net 应用程序中共享应用程序配置?

java - 将带引号的 Java 字符串拆分为不带引号的参数

java - 是否可以使用 Optional.ofNullable 来检查是否为 null 并分配默认值

jsf - 在 PrimeFaces 日历中更改一周的第一天

jsf - F :selectItems showing the class not a value

visual-studio - 如何在 Visual Studio 中关闭 App.config 文件自动排列格式