Spring下获取项目根路径



Spring下获取项目根路径

Spring 在 org.springframework.web.util 包中提供了几个特殊用途的 Servlet 监听器,正确地使用它们可以完成一些特定需求的功能。比如某些第三方工具支持通过 ${key} 的方式引用系统参数(即可以通过 System.getProperty() 获取的属性),WebAppRootListener 可以将 Web 应用根目录添加到系统参数中,对应的属性名可以通过名为“webAppRootKey”的 Servlet 上下文参数指定,默认为“webapp.root”。下面是该监听器的具体的配置:

清单 6. WebAppRootListener 监听器配置

  1. <</span>context-param>
  2. <</span>param-name>webAppRootKey</</span>param-name>
  3. <</span>param-value>baobaotao.root</</span>param-value> Web 应用根目录以该属性名添加到系统参数中
  4. </</span>context-param>
  5. 负责将 Web 应用根目录以 webAppRootKey 上下文参数指定的属性名添加到系统参数中
  6. <</span>listener>
  7. <</span>listener-class>
  8. org.springframework.web.util.WebAppRootListener
  9. </</span>listener-class>
  10. </</span>listener>

这样,您就可以在程序中通过 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/