热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springmvc初始化失败问题跟踪

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

 


1.问题

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


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中

 


推荐阅读
author-avatar
逆夏_Pretty
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有