2011-03-07 73 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。