在 PHP 开发中,可以通过服务器的“环境”变量确定应用程序是在生产环境还是开发环境中运行。
在 tomcat 服务器上是否有类似的变量可用,或者是否有更好的方法将应用程序用于生产和开发?
最佳答案
我们拥有的每个 Tomcat 实例都在 server.xml
文件的 GlobalNamingResources
部分中定义了一个 isProduction
标志。
server.xml
:
<Server ...>
...
<GlobalNamingResources>
<Environment name="isProduction" value="false" type="java.lang.Boolean" override="false" />
</GlobalNamingResources>
<Service name="Catalina">
... etc ...
</Service>
</Server>
这允许通过在引用资源的 context.xml 中创建一个属性来使该属性在整个应用程序中可用:
context.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<Context ...>
<ResourceLink name="isProduction" global="isProduction" type="java.lang.Boolean" />
...
</Context>
获取值:
public boolean isProduction() {
Object o;
try {
o = (new InitialContext()).lookup("java:comp/env/isProduction");
} catch (NamingException e) {
o = Boolean.FALSE; // assumes FALSE if the value isn't declared
}
return o == null ? Boolean.FALSE : (Boolean) o;
}
关于java - Tomcat 生产/开发环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8378444/