1. 程式人生 > >Spring獲取Web應用根目錄的方法

Spring獲取Web應用根目錄的方法

Spring 在 org.springframework.web.util 包中提供了幾個特殊用途的 Servlet 監聽器,正確地使用它們可以完成一些特定需求的功能。比如某些第三方工具支援通過 ${key} 的方式引用系統引數(即可以通過 System.getProperty() 獲取的屬性),WebAppRootListener 可以將 Web 應用根目錄新增到系統引數中,對應的屬性名可以通過名為“webAppRootKey”的 Servlet 上下文引數指定,預設為“webapp.root”。下面是該監聽器的具體的配置:


清單 6. WebAppRootListener 監聽器配置

這樣,您就可以在程式中通過 System.getProperty("baobaotao.root") 獲取 Web 應用的根目錄了。不過更常見的使用場景是在第三方工具的配置檔案中通過 ${baobaotao.root} 引用 Web 應用的根目錄。比如以下的 log4j.properties 配置檔案就通過 ${baobaotao.root} 設定了日誌檔案的地址:

 log4j.rootLogger=INFO,R 
 log4j.appender.R=org.apache.log4j.RollingFileAppender 
 log4j.appender.R.File=${baobaotao.root}
/WEB-INF/logs/log4j.log ① 指定日誌檔案的地址 log4j.appender.R.MaxFileSize=100KB log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n

轉自IBM文章:http://www.ibm.com/developerworks/cn/java/j-lo-spring-utils1/