2011-03-07 75 views
0

我有一个Servlet过滤器,增加了等待时间的随机量的每个请求应用Servlet过滤器。现在,我切换它,当我开发的,并且将其关闭之前,我部署到生产服务器,但我必须做手工。仅在某些环境

有什么我可以做自动检测开发环境,并仅适用于过滤器呢?

+0

您是使用Maven,Ant还是IDE来构建?答案取决于你的构建过程是什么样子。 – Jeremy 2011-03-07 23:30:18

回答

2

我们使用系统属性来设置每个应用程序服务器,允许应用程序,以确定它是否是活还是开发上运行的属性。如果你能控制这些环境,这意味着你可以标准化命名约定等,这是最好的。

我们使用Tomcat,并且启动和关闭脚本已被修改,以向JVM添加一些额外的属性。例如:

JVM_OPTS="-Dfuturemedium.javalogs=/usr/share/tomcat_a/logs/ \ 
-Dfuturemedium.server.development=false \ 
-Dfuturemedium.smtp.server=localhost" 

这意味着,特定环境下的性能被取出每个单独的开发人员手中,并推入环境本身在那里他们可以由系统管理员进行控制,在整个构建文件等不得复制

boolean dev = Boolean.parseBoolean(System.getProperty("futuremedium.server.development", "false")); 

为了有条件地实施基于它是否是活的或开发一些行动:

然后我们就可以在代码中通过访问这些属性。 或者在log4j.properties我们可以使用:

log4j.appender.myapplication_file.File=${futuremedium.javalogs}myapplication.log 

,这很容易指定命令行上这些相同属性的任何命令行应用程序,以及因此它是内部或容器外部相当透明。

不确定你使用了哪个IDE,但是如果你正在其中运行一个应用服务器,那么它应该可以通过IDE控制这些额外的属性。 对于Netbeans内部的Tomcat,请转到工具 - >服务器 - > Tomcat - >平台 - > VM选项

0

如果你有一些特性是通过访问的build.xml,那么这个build.xml可以操纵你的web.xml启用禁用您根据环境需要的过滤器。 - 假设你正在使用build.xml。