|
|
1
8
我认为,如果属性是特定于机器/部署的,那么它们就属于机器。如果我要在战争中结束一切,它应该是drop-inable,这意味着它运行的机器没有特定的东西。如果战争中有依赖于机器的属性,这个想法就会破灭。 我喜欢做的是用properties.example文件构建一个项目,每台机器都有一个.properties,它位于战争可以访问它的地方。 另一种方法是让蚂蚁执行任务,例如开发战争、阶段战争、生产战争,并在战争构建中嵌入项目的属性集。我不太喜欢这个,因为作为项目构建的一部分,你最终会在单个服务器上拥有文件位置等信息。 |
|
|
2
6
我想,如果你有少量特定于机器的属性,那么你也可以将它们指定为-D属性。Commons Configuration提供了一种将属性文件与系统属性组合的简单方法。 我们在服务器上配置连接池。我们为每个环境命名相同的连接池,并简单地将分配给每个环境的服务器指向相应的数据库。应用程序只需要知道一个连接池名称。 |
|
|
3
4
我想是wrt配置文件 Steve's 这个答案是迄今为止最好的。我建议将外部文件设置为与war文件的安装路径相关,这样您就可以在一台具有不同配置的服务器上安装多个war。
例如,如果我
我也同意 Bill 关于在这些外部配置文件中尽可能少地放入内容。根据您的环境使用数据库或JMX来存储尽可能多的数据。Apache Commons Configuration有一个 nice object
unknown
拥有所有的libs
缺点是它将使用更多的内存,因为每个web应用程序都有自己的类副本,由自己的类加载器加载。
如果这引起了真正的担忧,那么您可以将jar放在servlet容器的公共库文件夹中(
在这种情况下,我会使用InstallShield或 NSIS |
|
|
4
2
我通常创建两个属性文件:
服务器(静态?)库:我强烈建议在我的应用程序中使用服务器库,因为它会增加对服务器的依赖性:
|
|
|
5
0
我把所有配置都放在数据库中。容器(Tomcat、WebSphere等)允许我访问初始数据库连接,从那时起,所有内容都从数据库中出来。这允许在没有停机时间(或至少没有重新部署)的情况下进行多个环境、集群和动态更改。特别好的是能够动态更改日志级别(尽管您需要管理员屏幕或后台刷新来获取更改)。显然,这只适用于启动应用程序不需要的东西,但一般来说,您可以在启动后很快访问数据库。 |