开发和生产的属性

我有一个GlassFish / j2ee应用程序,我在一个盒子上开发,生产是一个远程盒子。 我有一个制作文件的function,我需要根据我的开发盒或制作文件的位置不同。 什么是自动切换方式,因此我不必根据部署位置编辑源文件?

最简单的方法是定义一个系统属性,该属性指定数据的文件系统位置。 生产应用程序服务器将定义一个值(在启动脚本中使用java -D ),您的开发应用程序服务器将定义另一个值。 您的应用程序源将查询系统属性值(使用System.getProperty() )以发现适当的位置。

您可以在此配置文件中使用properties文件并外部化特定于环境的内容(例如“文件位置”)。 在构建时将足够的值放入其中(例如,使用Maven 过滤和配置文件 )。 将此文件包含在应用程序中,或使其在类路径的某个位置可用。

将您需要的信息放在JNDI中 – 这就是它的设计目标。

如果信息不存在,请考虑让您的应用程序拒绝执行任何操作。

实际上,您正在尝试存储根据您的环境而变化的任意数据。 如果你现在在你的应用程序(即数据库)中这样做,我会把它放在那里。