• springmvc初始化失败问题跟踪


     

    1.问题

    访问路径http://10.118.30.52:8088/helloWorld/hello后会报404错误,原因是springmvc配置文件中的包扫描路径错误.修改配置如下:

    <context:component-scan base-package="AgileShare" />

    2.问题跟踪发现

    1.打断点到正常的controller代码中,如下图:

    2.通过观察方法的调用栈内存,可以看到方框内主要是servlet的调用方法,属于服务器端的调用,所以将断点打在spring.web的doDispatch()方法中.

    3.通过观察doDispatch方法 ,可以定位到获取handler的方法,如下图是获取到的handler类及方法:

    4.继续追踪这个getHandler(processedRequest)方法

     会发现这个getHanler方法依然属于DispatcherServlet类,this.handlerMappings属性下的mappingRegistry属性记录了所有的springmvc的初始化bean.

    5.继续追踪这个this.handlerMappings属性是被谁初始化,发现初始化方法中会传入context

    但是打断点后重新请求无效,发现这个initStrategies方法是服务器启动后初始化调用的.可以在下图看到调用时是继承父类中的方法调用的.

    继续追踪父类,通过方法调用占可以看出调用的是哪一个父类即FrameworkServlet.至此已经追踪到顶层了

     看怎么初始化所有实例bean还要追踪

     

    如下图执行完这个方法后所有的初始化类都会进入到context及webApplication中

  • 相关阅读:
    转载——rdis安装yum版本
    Lc28_strStr kmp字符串匹配
    关于 哈希的总结
    Lc344_反转字符串
    Lc383_赎金信
    Lc454_四数相加 II
    Lc1_俩数之和
    推荐4款个人珍藏的IDEA插件!帮你写出不那么差的代码
    ZUC-生成随机序列
    移位运算
  • 原文地址:https://www.cnblogs.com/zhulibin2012/p/10583188.html
Copyright © 2020-2023  润新知