SpringMVC入门

1.Spring集成web环境

1.1 ApplicationContext应用上下文获取方式

应用上下文对象是通过 new ClasspathXmlApplicationcontext (Spring配置文件)方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件),这样的弊端是配置文件加载多次,应用上下文对象创建多次。

在Web项目中,可以使用 ServletContextListener 监听Web应用的启动,我们可以在Web应用启动时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域servletcontext 域中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。

1.2 Spring提供获取应用上下文的工具

Spring提供了一个监听器ContextLoaderListener 就是对上述功能的封装,该监听器内部加载Spring配置文件,创建应用上下文对象,并存储到Servletcontext 域中,提供了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象。

所以我们需要做的只有两件事:

① 在web.xml中配置ContextLoaderListener监听器(导入spring-web坐标)

② 使用WebApplicationContextUtils获得应用上下文对象ApplicationContext



2. SpringMVC组件解析

2.1 SpringMVC概述

SpringMVC 是一种基于 Java 实现 MVC 设计模型 的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork 的后续产品。SpringMVC 通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTfuI 编程风格的请求。

2.2 SpringMVC执行流程

  1. 用户发送请求至前端控制器DispatcherServet
  2. 前端控制器DispatcherServlet 收到请求调用HandlerMapping处理器映射器
  3. 处理器映射器HandlerMapping可以根据 xml配置文件注解 找到具体处理器,生成处理器对象及处理器拦截器(如果有则生成),然后返回给前端控制器DispatcherServlet。
  4. 前端控制器DispatcherServlet调用 HandlerAdapter处理器适配器
  5. 处理器适配器HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
  6. 后端控制器Controller执行完成返回 MedelAndView 给处理器适配器HandlerAdapter。
  7. 处理器适配器HandlerAdapter将ModelAndView返回给前端控制器DispatcherServlet。
  8. 前端控制器DispatcherServlet将ModelAndView传给 ViewReslover视图解析器
  9. 视图解析器ViewReslover解析后返回具体View对象 给前端控制器DispatcherServlet。
  10. 前端控制器DispatcherServlet根据View对象进行渲染视图,最终返回给用户。

2.3 SpringMVC组件解析

  1. 前端控制器DispatcherServlet : 用户请求到达前端控制器,它就相当于 MVC模式中的C,前端控制器DispatcherServlet是整个流程控制中心,由它调用其它组件处理用户的请求,前端控制器DispatcherServlet的存在降低了组件之间的耦合性。
  2. 处理器映射器HandlerMapping : HandlerMappimng 负责根据用户请求找到 Handler即处理器,SpringMVC提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
  3. 处理器适配器HandlerAdapter : 通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
  4. 处理器Handler : 它就是我们开发中要编写的具体业务控制器。由 DispatcherServlet 把用户请求转发到 Handler。由Handler 对具体的用户请求进行处理。
  5. 视图解析器View Resolver :View Resolver 负责将处理结果生成 View 视图,View Resolver
    首先根据逻辑视图名解析成物理视图名,即具体的页面地址,再生成 View 视图对象,最后对 View进行渲染将处理结果通过页面展示给用户。
  6. 视图View : SpringMVC 框架提供了很多的 View视图类型的支持,包括:jstIView、freemarkerView、pdfView等。最常用的视图就是jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

2.4 SpringMVC注解解析

@RequestMapping 作用:用于建立请求 URL 和处理请求方法之间的对应关系。

使用位置:

  • 类上,请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录。

  • 方法上,请求 URL的第二级访问目录,与类上的使用@RequestMapping标注的一级目录一起组成访问虚拟路径。
    属性:

  • value:用于指定请求的URL,它和path属性的作用是一样的。

  • method:用于指定请求的方式。

  • params:用于指定限制请求参数的条件。它文持简单的表达式,要求请求参数的kev和value必须和配置的一模一样。

例如:

params={"accountName"},表示请求参数必须有ascountName

params={"moeny!100"},表示请求参数中money不能是100

相关推荐
爱敲代码的小杨.1 小时前
【Spring】Spring Web MVC
前端·spring·mvc
ly76892 小时前
Spring 中的 @Configuration 与 @Component 差异:为何代理时机决定 Bean 生命周期行为
java·后端·spring·注解·代理·bean生命周期
Wang's Blog3 小时前
Java框架快速入门: Spring Security+OAuth2之安全配置基础及函数式风格对比
java·安全·spring
霸道流氓气质3 小时前
Spring AI Alibaba 系列总结:Java 工程师 AI 能力全景图谱
java·人工智能·spring
wno7043 小时前
Spring Cloud Hystrix Dashboard仪表盘
spring·spring cloud·hystrix
山甫aa4 小时前
【从零开始的 Web 后端学习】令牌技术一篇搞定(JWT 登录认证保姆级)
后端·学习·spring·web·jwt
Rain的Java大神之路5 小时前
手写一个Spring容器
java·后端·mysql·spring·面试
Wang's Blog5 小时前
Java框架快速入门: Spring Security+OAuth2之定制登录页
java·开发语言·spring
霸道流氓气质5 小时前
Spring AI vs Spring AI Alibaba:技术选型与平滑迁移策略
java·人工智能·spring
m0_5873830017 小时前
全民健身解决方案软件开发实战:从架构设计到落地指南
java·spring boot·spring·架构·需求分析