SpringMVC入门案例

SpringMVC入门案例

概述

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

特点:

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

以下是SpringMVC流程图。
在这里插入图片描述


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.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <port>8095</port>
          <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环境
    在这里插入图片描述

  • 启动项目
    在这里插入图片描述

    • 访问路径进入浏览器在路径后加上“/save”访问。
      浏览器页面:
      在这里插入图片描述

      控制台打印: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环境
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值