如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033
Java开发中经常打WAR的人会遇到一个问题,每次都得根据部署电脑的IP、路径等信息修改工程中的配置文件。
但是每次都这样还是非常烦人的。
下面介绍一下如何将配置文件分离出来,这样每次打WAR包的时候就可以直接将WAR部署就好了,一般不需要关心配置文件的问题。
1.数据库配置文件的分离
jdbc.properties是数据库的配置文件,其目录为config下。
1.1 设置配置文件目录
找到WebRoot下WEB-INF下的web.xml文件,加入如下内容
<!-- 用于配置文件分离 -->
<context-param>
<param-name>customConfigDir</param-name>
<param-value>c:\webConfig</param-value>
</context-param>
这样就可以设置配置文件的主目录
1.2 spring-beans.xml中配置jdbc.properties路径
找到propertyConfigurer标签下,修改value
<beans:bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="locations">
<beans:list>
<!-- <beans:value>classpath:jdbc.properties</beans:value> -->
<beans:value>file:/${customConfigDir}/${projectName}/jdbc.properties</beans:value>
</beans:list>
</beans:property>
</beans:bean>
其中${projectName}为工程名称的配置,位于web.xml。
该参数主要用于区分不同工程的配置文件。
前面加的file:/,不然路径不正确。
2.其他配置文件的分离
我们这里还用到一个其他的配置文件config.xml。
<?xml version="1.0" encoding="UTF-8"?>
<!-- 图片地址 -->
<image-copy-path>D:\ftp\suppliesTypePic</image-copy-path>
</config>
例如,我们这里配置了一个图片的地址。
config.xml在java代码中需要调用。
String configPath = event.getServletContext().getInitParameter("customConfigDir")
+"\\"
+event.getServletContext().getInitParameter("projectName")
+ "\\config.xml";
XMLUtil.parserXml(configPath);
主要是通过getServletContext来调用xml中的参数
至此,我们就可以将配置文件与WAR分离出来,极大的方便了部署工作。
觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:12951803