背景:一个tomcat,一个eclipse,一个SSM框架的web项目。在eclipse中新建tomcat服务器,默认配置,然后在服务器配置中将Server Locations改成Use Tomcat installation并且将Deploy path换成tomcat安装目录下的webapps

现象: 将web项目部署到背景中的tomcat服务器中,运行项目。然后在eclipse的控制台中就会发现spring配置被执行了两次。如果想看到明显的现象,可以在项目中添加一个自启动的bean,并在自启动方法中向控制台打印信息。那么你将看到这些信息被打印了两次。也就是说,spring的bean被初始化两次。

解决方法:
方式一:将服务器配置中Deploy path路径webapps换一个名称,比如wtpwebapps
方式二:勾选Server Options中的Publish module contexts to separate XML files

原因: web项目启动时,由于

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

中的appBase中的值为webapps,tomcat加载到这里的时候,会去webapps文件夹下查找项目,并启动找到的项目,然后tomcat发现了webapps下刚好有一个部署的项目(Deploy path设置什么目录,项目就会部署到什么目录),所以这是第一次启动。接着,tomcat继续加载配置,然后就找到了

<Context docBase="projectName" path="projectPath" reloadable="true" source="org.eclipse.jst.jee.server:ssm-config"/>

于是,tomcat根据这个配置又加载了一次项目,这是第二次加载项目,所以在控制台可以看到两次初始化spring。

【问题记录】eclipse启动web项目时,spring会初始化两次的更多相关文章

  1. 使用Eclipse创建Web项目时WEB-INF下找不到web.xml问题详解

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yjrguxing/article/deta ...

  2. IntelliJ IDEA启动web项目时突然变慢的原因

    在使用IntelliJ IDEA开发web项目过程中,有两次项目启动非常慢,大约要200s的时间: 第一次忘记是怎么解决的,第二次出现后,我就直接重新下载了代码,然后部署,启动,时间有恢复正常,只用了 ...

  3. Eclipse使用Maven tomcat:run命令启动web项目时修改默认端口

  4. eclipse 导入web项目时常见错误

    1. JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java B ...

  5. Eclipse启动Web项目 Tomcat中webapps中没有项目文件夹

    原文出处:https://blog.csdn.net/JYH1314/article/details/51656233 1.eclipse不像MyEclipse默认将项目部署到tomcat安装目录下的 ...

  6. eclipse创建web项目web.xml配置文件笔记

    1.使用eclipse创建web项目时,如果直接finish的话就没有默认生成web.xml配置文件,此时在你的项目下是看不到web.xml配置文件的,如果要查看的话可以如下操作: 右键你的项目,然后 ...

  7. Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)

    转自:http://blog.csdn.net/lvguanming/article/details/37812579?locationNum=12 写在前面的话 现在是越来越太原讨厌Eclipse这 ...

  8. Eclipse使用Maven tomcat:run命令启动web项目

    Eclipse安装好m2e插件,使用Maven构建项目后,启动web项目就行就非常简单了,你不再需要下载然后在eclipse中配置tomcat. 右键你的项目 -> Run As -> R ...

  9. eclipse 创建 maven 项目时如何修改 web 的版本和 jdk 的版本

    eclipse 创建 maven 项目时如何修改 web 的版本和 jdk 的版本 在使用 eclipse 创建 maven 项目的时候,默认的 web.xml 的版本时 2.3,默认 jre 的版本 ...

随机推荐

  1. SciPy中两个模块:io 和misc

    读写.mat文件 如果你有一些数据,或者在网上下载到一些有趣的数据集,这些数据以Matlab的.mat 文件格式存储,那么可以使用scipy.io 模块进行读取. data = scipy.io.lo ...

  2. 1.2(学习笔记)Servlet基础(doGet、doPost、生命周期、页面跳转)

    一.doGet()与doPost() 我们在TestServlet类中重写doGet().doPost().service(). import javax.servlet.ServletExcepti ...

  3. 关于Hadoop_env.sh中的HADOOP_CLASSPATH

    之前博客里介绍了如何自定义DoubleArrayWritable,并将该类型的value写入SequenceFile文件中,为了能够使用命令查看这个文件中的内容(果然坑都是一步一步给自己挖的)参考了网 ...

  4. Modernizr使用指南(转)

    HTML5, CSS3以及相关技术(例如canvas和web sockets)带来了非常有用的特性,可以让我们的web程序提升一个新的level.这些新技术允许我们只用HTML,CSS和JavaScr ...

  5. [转][译] 分分钟学会一门语言之 Python 篇

    Python was created by Guido Van Rossum in the early 90's. It is now one of the most popularlanguages ...

  6. 定时任务-crontab

     一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动c ...

  7. ES6笔记之参数默认值(译)

    原文链接:http://dmitrysoshnikov.com/ 原文作者:Dmitry Soshnikov 译者做了少量补充.这样的的文字是译者加的,可以选择忽略. 作者微博:@Bosn 在这个简短 ...

  8. CMD一键获取cpu信息

    windows + R 输入cmd打开CMD 输入wmic cpu get Name 获取cpu名称-即物理cpu数 cpu get NumberOfCores获取cpu核心数 cpu get Num ...

  9. JAVA加解密 -- 对称加密算法与非对称加密算法

    对称加密算法:双方必须约定好算法 DES 数据加密标准:由于不断地被破解 自98年起就已经逐渐放弃使用 AES 目前使用最多的加密方式,官方并未公布加密方式已被破解,替代DES 实现和DES非常接近 ...

  10. 程序员之---C语言细节24(段错误、类型提升、sizeof &#39;A&#39;)

    主要内容:段错误.类型提升.sizeof  'A' #include <stdio.h> int main() { union test{ char a[10]; int b; }u; i ...