springboot--18 SpringBoot深度实践(SpringMVC)

目录

 

1.学习内容

2.一般认识SpringMVC

3.SpringMVC重新认识 核心组件

4.Web MVC 注解驱动

@EnableWebMvc模块注解说明

5.自定义组件 : WebMvcConfigurer (Spring Bean)

6.Spring MVC相关的注解

7.WebMVC的自动装配  即使在Spring MVC的时代,我们也可以实现自动装配

8.SpringBoot时代的简化


1.学习内容

Servlet的特点:

2.一般认识SpringMVC

  

 

  

3.SpringMVC重新认识 核心组件

 

webMVC核心组件

   注意处理器Handler具体指的就是方法。

 我们可以通过读源码发现,这些核心的组件都是在DispatcherServlet里面初始化了的

 

随便打开一个初始化的方法:

SpringMVC的交互流程图:

断点调试源码:

DispatcherServlet 的入口方法:

第二步就是通过HandlerMapping选择一个Handler,handlerMappings这里就只有一个满足条件的类,就是我们配置文件里面配置的。

选择出的HandMapping是我们配置文件里面配置的RequestMappingHandlerMapping,然后通过RequestMappingHandlerMapping去 choose Handler,   这个Handler上面组件说过是包含

处理器Handler(这里指的就是HelloWorldController 的index方法),和intercepors列表(这里是null,也就是没有注册得有拦截器)

接着进入第三步,进入到handlerAdapter, 这里加载的也是我们在配置文件里面配置的RequestMappingHandlerAdapter

第四步第五步会走程序员自己去实现的逻辑,然后进去=入到第六步,

完了之后就会去渲染页面。

拦截器 过滤器的执行顺序:https://blog.csdn.net/zxd1435513775/article/details/80556034

4.Web MVC 注解驱动

基本配置步骤
注解配置: @Configuration Spring 范式注解 )
组件激活: @EnableWebMvc Spring 模块装配)
自定义组件 : WebMvcConfigurer Spring Bean

将配置文件去掉,加上一个配置类,开启MVC功能。

这个时候再启动项目,让他自动装配组件进来,他会装配很多得组件进来。

视图解析器的前缀和后缀还没有配置,所以这里为空的,所以请求会返回404,找不到资源文件。

从xml转换到Bean:

然后就可以找到这个视图解析器,就不会出现404了

@EnableWebMvc模块注解说明

  这个注解怎么就把那些组件给注入到DispatcherServlet了呢进去了呢,可以看上一篇博客介绍的走向自动装配

这是通过注解实现的Enable模块装配

通过@EnableWebMvc这个注解就已经把Bean加入到容器中了

然后在这里就加入到了DispatcherServlet了

 

5.自定义组件 : WebMvcConfigurer Spring Bean

     WebMvcConfigurer里面就可以加入自定义的组件,比如说拦截器。WebMvcConfigurer有一个默认的实现,但是已经被弃用掉了,因为里面的实现都是空实现,没有意义,会增加类的使用量。

i

实现这个接口:

添加拦截器,拦截器在Handle之前执行,我们说过Handle就是Controller里面的方法,所以这个在Controller的方法执行之前执行,

现在需要思考一个问题就是这个拦截器类是如何注入进去的。

@EnableWebMvc注入,required等于false,当这个实现类不存在的时候也是可以接受的。

真正的调用其实在这里

然后就会掉到我们自己实现的拦截器的逻辑

6.Spring MVC相关的注解

注册模型属性: @ModelAttribute
读取请求头: @RequestHeader
读取 Cookie @CookieValue
校验参数: @Valid @Validated
注解处理: @ExceptionHandler
切面通知: @ControllerAdvice

这样更方便,ModelAttribute方法先处理,handle方法后处理。

7.WebMVC的自动装配  即使在Spring MVC的时代,我们也可以实现自动装配

条件:但是我们大多数的人不会用这个裸接口来编程

 我们会用Spring的 SPI

    

注释掉:

 

8.SpringBoot时代的简化

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空恋旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值