代码之家  ›  专栏  ›  技术社区  ›  monksy

在Web应用程序中保留设置文件

  •  1
  • monksy  · 技术社区  · 14 年前

    对于如何在J2EE项目中保存应用程序级设置/配置文件,有什么建议吗?我有一个Web项目,它具有必须写入日志的依赖项和本地设置文件。是否仍要将设置文件存储在本地目录中并使其可写?

    [有些依赖项是:Hibernate和GridGain,因此它们产生大量日志]

    我不想硬编码设置文件的位置。

    4 回复  |  直到 6 年前
        1
  •  5
  •   Soundlink    14 年前

    您应该将配置文件放在 WEB-INF 文件夹。你可以创建一个目录 /WEB-INF/config . 如果它们应该在类路径中,则将它们放到 /WEB-INF/classes . 通过这种方式,该位置不是硬编码的,而是在一个众所周知的应用程序位置。

    把它们放进去 /WEB-INF 很重要,因此浏览器无法“访问”这些文件。


    另一种方法是将参数添加到 web.xml 配置,指定配置文件的位置,使其不在webapps目录中。您可以通过添加 context-param . 例如:

    <context-param>
        <param-name>configuration</param-name>
        <param-value>/var/myapp/config</param-value>
    </context-param>
    

    该值将作为名为 配置 . 然后,您可以使用它作为基本路径来读取配置文件(通过调用 getInitParameter 方法从 ServletContext )

    但这只适用于类路径中不需要的配置文件。

        2
  •  2
  •   BalusC    14 年前

    只需将配置文件的路径添加到webapp的 类路径 . 这是常见的方法,许多API也设计为从类路径加载配置。对于手动加载这些文件的情况,可以使用 ClassLoader#getResourceAsStream() 得到一个 InputStream 类路径资源的。

    首先,在webapp目录之外的某个地方创建一个固定路径,以便将配置文件放到其中,例如 /var/webapp/config . 然后将servletcontainer配置为在类路径中包含此路径。对于Tomcat,可以在 shared.loader common.loader 性质 /conf/catalina.properties 文件。

        3
  •  0
  •   Arjan Tijms Mike Van    11 年前

    同意SoundLink。

    您也可以将设置存储在 数据库 . 当servlet启动时,应该从数据库加载设置数据。

    • 专业:无需维护 不是JavaEE的配置文件 标准。
    • con:在servlet启动后工作 起来。
        4
  •  0
  •   user3172374    6 年前

    在数据库中保留设置更好,因为应用程序需要支持群集。