【发布时间】:2010-12-09 22:03:27
【问题描述】:
我有一个 GlassFish/j2ee 应用程序,我在一个盒子上进行开发,而生产是一个远程盒子。 我有一个制作文件的功能,我需要文件的位置根据我的开发盒或生产而有所不同。 什么是自动切换的方法,这样我就不必根据部署位置来编辑源文件?
【问题讨论】:
-
这些文件是相对于您的网络应用的安装目录还是在部署目录之外?
标签: java deployment configuration
我有一个 GlassFish/j2ee 应用程序,我在一个盒子上进行开发,而生产是一个远程盒子。 我有一个制作文件的功能,我需要文件的位置根据我的开发盒或生产而有所不同。 什么是自动切换的方法,这样我就不必根据部署位置来编辑源文件?
【问题讨论】:
标签: java deployment configuration
您可以在此配置文件中使用properties 文件并外部化特定于环境的内容(例如您的“文件位置”)。在构建时将足够的值放入其中(例如,将 filtering and profiles 与 Maven 一起使用)。将此文件包含在应用程序中或使其在类路径中的某个位置可用。
【讨论】:
最简单的方法是定义一个系统属性,该属性指定数据的文件系统位置。生产应用服务器将定义一个值(在启动脚本中使用java -D),而您的开发应用服务器将定义另一个值。您的应用程序源将查询系统属性值(使用System.getProperty())以发现适当的位置。
【讨论】:
将您需要的信息放入 JNDI - 这就是它的设计目的。
如果信息不存在,请考虑让您的应用程序拒绝执行任何操作。
【讨论】:
本质上,您正在尝试存储随环境而变化的任意数据。如果您目前在您的应用程序(即数据库)中执行此操作,我会将其放在那里。
【讨论】: