SpringMVC入门案例

SpringMVC入门案例

概述

SpringMVC是基于Spring技术的一款MVC框架,所谓MVC是web开发的一种经典设计模式,c指的是Controller(控制器),m是model(模型)及是通常我们所建的那些类,v(视图层)就是那些前端所能看见的页面 。主要是用来进行Web开发,是对Servlet进行了封装。

特点:

  • 轻量级,简单易学
  • 高效 , 基于请求响应的MVC框架
  • 与Spring兼容性好,无缝结合
  • 约定优于配置
  • 功能强大:RESTful、数据验证、格式化、本地化、主题等
  • 简洁灵活

以下是SpringMVC流程图。
SpringMVC入门案例_第1张图片


SpringMVC入门案例(全注解)

  • SpringMVC的制作过程和Servlet开发流程几乎是一致的,具体的实现流程是如下:

    1.创建web工程(Maven结构)

    2.设置tomcat服务器,加载web工程(tomcat插件)

    3.导入坐标(SpringMVC+Servlet)

    4.定义处理请求的功能类(UserController)

    5.设置请求映射(配置映射关系)

    6.将SpringMVC设定加载到Tomcat容器中

  • 创建一个Maven工程后,在.pom文件中添加相应的依赖坐标

 <dependencies>
    <dependency>
      <groupId>javax.servletgroupId>
      <artifactId>javax.servlet-apiartifactId>
      <version>3.1.0version>
      <scope>providedscope>
    dependency>
    <dependency>
      <groupId>org.springframeworkgroupId>
      <artifactId>spring-webmvcartifactId>
      <version>5.2.10.RELEASEversion>
    dependency>
  dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.mavengroupId>
        <artifactId>tomcat7-maven-pluginartifactId>
        <version>2.1version>
        <configuration>
          <port>8095port>
          <path>/path>
        configuration>
      plugin>
    plugins>
  build>

  • 创建配置类

    @Configuration
    @ComponentScan("com.itheima.controller")
    public class SpringmvcConfig {
    }
    

    @Configuration代表此类是个配置类,代替了配置文件中的SpringMVC的下xml文件。

    @ComponentScan代表此配置类作用在哪个包结构下。

  • 创建Controller类

    @Controller
    public class UserController {
        
        @RequestMapping("/save")
        @ResponseBody
        public void save(){
            System.out.println("user save ...");
          return "{'info':'springmvc'}";
        }
    }
    

    @Controller代表此类是在控制层,被Spring容器控制的类。

    @RequestMapping代表前端访问此注解中的地址时就执行该方法,这里的sava方法就是打印了一句话。

    @ResponseBody代表此方法返回的数据格式为json格式。

  • 使用配置类代替Web项目中的web.xml文件。

    将原来的web.xml文件删除,创建一个配置类ServletContainersInitConfig(类名可以随意取);

    public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
        @Override//加载Springmvc配置类
        protected WebApplicationContext createServletApplicationContext() {
            AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
            //加载指定配置类
            ctx.register(SpringmvcConfig.class);
            return ctx;
        }
    
        @Override//设置由springmvc控制器处理的请求映射路径
        protected String[] getServletMappings() {
            return new String[]{"/"};
        }
    
        @Override//加载Spring配置
        protected WebApplicationContext createRootApplicationContext() {
           return null;
    
        }
    }
    

    这里主要是继承AbstractDispatcherServletInitializer再重写它三个方法,入门案例没有Spring配置类,所以主要是加载Springmvc配置类和设置有springmvc控制器处理的请求映射路径方法需要有返回值。

  • 配置Tomcat环境
    SpringMVC入门案例_第2张图片

  • 启动项目
    SpringMVC入门案例_第3张图片

    • 访问路径进入浏览器在路径后加上“/save”访问。
      浏览器页面:
      SpringMVC入门案例_第4张图片

      控制台打印:user save …

    此次SpringMVC全注解开发案例就完成了,可以看出代码量不多,只需要设置两个配置类加一个Contorller类。再加上相对应的注解和请求路径就好。

    注意事项:

    • 案例中的端口是8095;

    • SpringMVC是基于Spring的,在pom.xml只导入了spring-webmvcjar包的原因是它会自动依赖spring相关坐标

    • AbstractDispatcherServletInitializer类是SpringMVC提供的快速初始化Web3.0容器的抽象类

    • AbstractDispatcherServletInitializer提供了三个接口方法供用户实现

      • createServletApplicationContext方法,创建Servlet容器时,加载SpringMVC对应的bean并放入WebApplicationContext对象范围中,而WebApplicationContext的作用范围为ServletContext范围,即整个web容器范围
      • getServletMappings方法,设定SpringMVC对应的请求映射路径,即SpringMVC拦截哪些请求
      • createRootApplicationContext方法,如果创建Servlet容器时需要加载非SpringMVC对应的bean,使用当前方法进行,使用方式和createServletApplicationContext相同。
      • createServletApplicationContext用来加载SpringMVC环境
      • createRootApplicationContext用来加载Spring环境

你可能感兴趣的