关于SpringMvc实践的一些体会和总结

 2023-09-05 阅读 156 评论 0

摘要:2019独角兽企业重金招聘Python工程师标准>>> 一直以来都在用java的springmvc,没有深入去探究关于spring以及mvc的一些内在的工作过程,今天利用休息时间,仔细阅读了一下我们的源码,并结合搜索引擎,明白了几个之前解决了问题,还没理解原理的原因所在. 本文将对SpringM

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一直以来都在用java的springmvc,没有深入去探究关于spring以及mvc的一些内在的工作过程,今天利用休息时间,仔细阅读了一下我们的源码,并结合搜索引擎,明白了几个之前解决了问题,还没理解原理的原因所在. 

本文将对SpringMVC的理解进行追踪描述,一来希望大家批评指正,纠正错误的理解,二来给自己一个留念,当以后忘记的时候,还有个记录,可以再次回想起来,三来总结技术经验,希望今后的路走的更好.

 

早两天我部署了一个项目,所有的配置都是从公司项目中抽取出来的.公司项目运行得很好,而我自己的项目却总是404,在这之前,为了看项目是否部署好,做了个html页面做静态资源测试,于是增加了静态资源配置如下:

 <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.html</url-pattern>

 </servlet-mapping> 

项目中有两个配置文件,一个是MyProject-sevlet.xml,另一个是ApplicationContext-Services.xml

在web.xml中配置是这样的

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/conf/ApplicationContext-Services.xml</param-value>
  </context-param> 

 <servlet>
    <servlet-name>MyProject</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/conf/MyProject-servlet.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

 

注解驱动<mvc:annotation-driven/>是写在ApplicationContext-Services.xml,而不是MyProject-sevlet.xml,无论怎么访问jsp页面,都是404 ,后来发现,只要在MyProject-sevlet.xml加上<mvc:annotation-driven/>就能正常访问.猜想应该是没有优先加载ApplicationContext-Services.xml所导致的问题,但奇怪的是,公司项目配置文件就是这么写的,也没有其他特殊的配置,为什么那个项目能优先记载这个配置呢?  查资料说是因为增加了default这个servlet配置,但感觉解释的不够通透,不能完全理解,希望各位大神指点迷津.

另外,从application来说,使用WebApplicationContextUtils对象时,发现它有findWebApplicationContext,getRequiredWebApplicationContext,getWebApplicationContext,initServletPropertySources,registerEnvironmentBeans,registerWebApplicationScopes等方法

通过查阅相关资料,总结如下

findWebApplicationContext实际上最终也是调用getWebApplicationContext方法,来获取webapplicationcontext

initServletPropertySources在spring classloader类初始化的时候被调用,用于初始化servlet配置参数

其他方面的总结后续再补充,敬请期待

 

 

 

 

 

 

转载于:https://my.oschina.net/u/2457585/blog/777714

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/949.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息