有时项目需要将配置文件单独放置的部署的应用包之外,以方便修改配置
比如,在web.xml中配置需要加载的log4j配置文件所在路径,一般常规的配置都是
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>WEB-INF/log4j.xml</param-value> </context-param>
log4j的配置文件放在WEB-INF目录下或者classpath中,
如若将log4j配置文件放置在${JBOSS_HOME}/bin目录或者其他目录下,则在web.xml中可以通过如下配置方式获取文件路径:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>file:${user.dir}/conf/log4j.xml</param-value>
</context-param>
其中${user.dir}是web容器启动脚本所在目录,即${JBOSS_HOME}/bin,通过加上file:前缀,则可以读取到文件的绝对路径,:file:${user.dir}/conf/log4j.xml。
同理,在spring的配置文件中获取数据源jdbc.properties文件也可以用同样方法:
<context:property-placeholder location="file:${user.dir}/conf/jdbc.properties" />