Dan*_*ton 0 java deployment configuration properties
我想找到一种在.properties不同部署配置的多个文件之间切换的权宜之计.
我最初的倾向是创建一个单独的文件selector.properties,其单个属性用于确定正确的文件:
properties.file=deploymentConfiguration1.properties
...对于一个部署,或:
properties.file=deploymentConfiguration2.properties
...用于下一次部署.
我团队的另一位开发人员有一个ApplicationProperties班级,其中:
private static final String PROP_FILE="someFileName.properties";
......是做到这一点的手段.但是,我想切换属性文件而不重建!提前感谢您的意见.
编辑:也许我最初应该更清楚,但这是针对一组打包为AAR的Web服务.我将它放入Web服务器,让Tomcat和Axis2做他们的事情.
所以,我不认为命令行参数的一些答案将在这种情况下起作用.
有多个属性文件,每个env一个,例如;
application-dev.properties
application-test.properties
application-prod.properties
Run Code Online (Sandbox Code Playgroud)
使用env作为系统属性启动您的应用程序;
java -Denv=test
Run Code Online (Sandbox Code Playgroud)
从相关文件加载您的属性;
String props = "application-" + System.getProperty("env") + ".properties";
Run Code Online (Sandbox Code Playgroud)
请注意,我通常不鼓励使用具有固定名称的属性文件,其中文件是在构建时生成的.
编辑:
如果是Web应用程序,您可以在部署描述符中设置env的值(web.xml)
<env-entry>
<env-entry-name>myEnv</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>test</env-entry-value>
</env-entry>
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样在你的网络应用中获得价值;
Context ctx = new InitialContext();
Context envCtx = (Context) ctx.lookup("java:comp/env");
String env = (String)envCtx.lookup("myEnv");
String props = "application-" + env + ".properties";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3364 次 |
| 最近记录: |