• SpringMVC简介


    SpringMVC概述

    • SpringMVC是一个基于Spring开发的MVC轻量级框架,Spring3.0后发布的组件,SpringMVC可以和Spring无缝整合,使用DispatcherServlet作为前端控制器,且内部提供了处理映射器、处理适配器、视图解析器等组件,可以简化JavaBean的封装,Json转化、文件上传等操作

    入门案例

    • 导入SpringMVC框架坐标
        1. <dependency>
        2. <groupId>org.springframeworkgroupId>
        3. <artifactId>spring-webmvcartifactId>
        4. <version>5.3.28version>
        5. dependency>
    • 配置前端控制器DispactherServlet

        1. web-app PUBLIC
        2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
        4. <web-app>
        5. <servlet>
        6. <servlet-name>DispatcherServletservlet-name>
        7. <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        8. <init-param>
        9. <param-name>contextConfigLocationparam-name>
        10. <param-value>classpath:SpringMVC.xmlparam-value>
        11. init-param>
        12. <load-on-startup>2load-on-startup>
        13. servlet>
        14. <servlet-mapping>
        15. <servlet-name>DispatcherServletservlet-name>
        16. <url-pattern>/url-pattern>
        17. servlet-mapping>
        18. web-app>
    • 创建Controller类,配置映射路径,同时讲控制类交给Spring容器

        1. package com.example.Controller;
        2. import org.springframework.stereotype.Controller;
        3. import org.springframework.web.bind.annotation.RequestMapping;
        4. @Controller
        5. public class Controller01 {
        6. @RequestMapping("/show")
        7. public String show() {
        8. System.out.println("show()...");
        9. // 返回视图路径
        10. return "/index.jsp";
        11. }
        12. }

    Controller中访问容器中的Bean

    • 在Spring的配置文件中,设置组件扫描范围
    • 然后SpringMVC的配置文件web.xml中解析配置,然后通过Spring集成web环境的相关知识(这里的知识我还没有太搞明白,先往下学),在web.xml配置文件中配置相应的配置,让服务器在加载web.xml配置文件时,加载到我们配置的Spring的配置文件,从而使注解生效,将对应的类交给Spring容器管理。

      •  
    • 然后启动服务器,在控制层直接使用@Autowired注解直接注入Bean对象即可

    SpringMVC关键组件的解析

    • 在上述文章中,我们已经简单完成了SpringMVC快速入门的操作,同时也完成了Spring与SpringMVC的整合,我们只需要按照规则去定义Controller和业务方法即可,但在这个过程中,肯定有很多核心功能类参与其中,这些核心功能类,一般称之为组件。当请求到达服务器时,是哪个组件接收的请求,是哪个组件帮我们找到对应的Controller,是哪个组件帮我们调用的方法,又是哪个组件最终解析的视图?
      • 组件描述常用组件
        处理器映射器:HandlerMapping匹配映射路径对应的Handler,返回可执行的处理器链对象HandlerExecutionChain对象RequestMappingHandlerMapping
        处理适配器:HandlerAdapter匹配HandlerExecutionChain对应的适配器进行处理器调用,返回视图模型对象RequestMappingHandlerAdapter
        视图解析器:ViewResolver对视图模型对象进行解析InternalResourceViewResolver

    Spring加载组件的策略


  • 相关阅读:
    【类和对象之构造方法】
    Android Studio轮播图使用失败怎么办【已解决】
    IPC中的AIDL机制(二)
    unity属性之UnityEngine
    逗号分隔String字符串 - 数组 - 集合,相互转换
    Android 签名机制
    除铜树脂-KF340
    使用python编写mqtt客户端向EMQX服务器发送数据
    Ubuntu Nginx 配置 SSL 证书
    Redis缓存和MySQL数据一致性方案详解
  • 原文地址:https://blog.csdn.net/weixin_64939936/article/details/133778918