解决Tomcat重复加载Spring配置文件
当我们为自己的Web应用而改动Tomcat中conf/server.xml,可以不录入项目路径就可以访问应用.
但是更改完毕后,启动Tomcat会发现一种现象就是重复加载Spring配置文件。
?
现象:
控制台端会输出日志:
Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host>改动后server.xml配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="frms4j" reloadable="true"/> </Host>
?
原理:
在Web环境里,会使用ContextLoader构造ApplicationContext后,压进Servlet Context。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host><Host name="localhost" appBase="newWebapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="../webapps/frms4j" reloadable="true"/> </Host>优点:不影响Eclipse的集成部署<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="../myapps/frms4j" reloadable="true"/> </Host><Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="/myapp/frms4j" reloadable="true"/> </Host>?