SpringMVC配置知多少?----《Spring实战》系列08

读完今天的章节“SpringMVC的高级技术”后,自己想起了两件不舒服的事情。这两件事都让自己感到很羞愧。

一是前段时间被一个架构师面试技术题,其中有一个问题就是配置文件里需要配置哪些关键信息,自己回答的并不好,而今天读的这一章有一部分内容就是讲解关于SpringMVC配置的知识。

二是最近在公司做的项目,有很多功能都是和文件上传下载有关的,但是自己往往只是复制粘贴之前同事的代码,并没有考虑背后的实现原理和如何优化,今天读的这一章内容里正好包含了SpringMVC支持上传文件类型数据的知识。

有了羞愧心,让我对学习这件事的有了新看法,那就是要对自己诚实。目前更新学习笔记也有一段时间了,但是状态却有点不对了,有点飘了,有点为了学习而学习,为了追求更新文章而写文章了。这是一个不好的信号,我应该对自己诚实一点。

写学习笔记输出第一个目标是自己消化理解,第二个目标是能对有需要的他人产生帮助。如果一篇文章没有达到这两个目标,那就是不合格的。

有一句话是:【正确的道路的对立面,不是错误的道路,而是容易的道路。】

不要选择容易的道路,因为有太多人去走,选择正确的道路,才能越走越远。

ok,开始我们今天的技术分享—关于SpringMVC的配置

在一个项目中,如果想要使用Spring MVC环境,首先需要配置文件进行搭建,最基本的就是DispatcherServlet和ContextLoaderListener环境。但有些时候,我们除了这两个基本环境外,还需要额外的Servlet和Filter,可能还需要对DispathcerServlet本身进行一些额外的配置,这个时候Spring框架就提供了一种Spring MVC配置的替代方案,自定义DispathcerServlet配置和自由添加其他的Servlet及Filter。

01 :回顾DispatcherServlet和ContextLoaderListener

这里先来复习一下DispatcherServlet和ContextLoaderListener的作用。DispatcherServlet是核心控制器,我们在“一个Web请求的自由之路”这篇文章里详细解释了它的功能,当它启动的时候,它会创建Spring应用上下文,并且加载配置文件或配置类中声明的bean,如控制器,视图解析器及处理器映射。

而ContextLoaderListener是一个Servlet监听器,当它启动的时候,也会创建一个Spring应用上下文,负责加载应用中的其它bean,这些bean通常是驱动应用后端的中间层和数据层组件。有了这两个基本的环境配置之后,一个SpringMVC就可以启动并使用了。

02:自定义DispatcherServlet配置

再回到一开始我们提到,项目中有时还需要额外的Servlet和Filter,或者对DispatcherServlet进行额外配置,这个时候Spring就提供了自定义DispatcherServlet配置的功能,书中提到的实现过程是:

在AbstractAnnotationConfigDispatcherServletInitializer将DispatcherServlet注册到Servlet容器之后,就会调用customizeRegistration(),并将Servlet注册后得到的Registration.Dynamic传递进来。通过重载custmomizeRegistration()方法,我们可以对DispathcerServlet进行额外配置。

具体需要额外配置些什么呢?比如说处理文件上传时,可以配置文件上传的路径,文件上传的大小限制,请求的大小限制,都可以自由配置。具体的细节在下一节将Springmvc支持multipart文件上传会详细介绍。

03 : 添加其他的Servlet和Filter

基于Java的初始化器(initializer)的一个好处在于,我们可以定义任意数量的初始化器类。如果想要往web容器中注册其他组件的话,只需要创建一个新的初始化器就可以了。最简单的方式就是实现Spring的WebApplicationInitializer接口。同样,也可以创建新的WebApplicationInitializer实现来注册Listener和Filter.

最后再来一起看一看一个web.xml文件中,是如何使用基于Java的Spring配置而搭建出的SpringMVC环境。
在这里插入图片描述

这就是今天要分享的内容,越往后读感觉知识点越深,理解起来也越难。但该学会的该理解的一样都不能少,这一定是必经之路。正确的道路的对立面,不是错误的道路,而是简单的道路。不要选简单的,迎难而上,哪怕每天只进步一点点,时间的复利也会带我们走向更好的远方。

加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值