• 学习SpringMVC(1)


    一,简介

    SpringMVC是一种基于Java实现MVC模型的轻量级Web框架

    优点:
    1,使用简单,开发便捷
    2,灵活性更强

    二,基本使用流程

    1,先导入SpringMVC坐标与Servlet坐标

    2,定义bean:创建SpringMVC控制器类(作用相当于Servlet功能,用@Controller注解)

    1)设置当前目录的访问路径:里面的方法用@RequestMapping("访问路径")
    2)@ResponseBody注解,是将返回的东西这个整体作为响应的内容

    3,加载bean:创建一个SpringMVC的配置类

    1)仍然是@Configuration注解,在用@ComponentScan(...)扫描控制器类
    2)初始化Servlet容器,加载SpringMVC环境,并设置SpringMVC技术处理的请求
    需要继承AbstractDispatcherServletInitializer类(或者AbstractAnnotationConfigDispatcherServletInitializer类),重写三个方法

    第一个方法:createServletApplicationContext方法——加载springMVC容器配置

    1. AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();
    2. //里面是SpringMVC配置类.class
    3. ctx.register(SpringMvcConfig.class)
    4. return ctx

    或者继承AbstractAnnotationConfigDispatcherServletInitializer类为

    return new Class[]{SpringMvcConfig.class}

    第二个方法:createrootApplicationContext方法——加载Spring容器配置

    1. AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();
    2. //里面是SpringMVC配置类.class
    3. ctx.register(SpringConfig.class)
    4. return ctx

    或者

    return new Class[]{SpringConfig.class}
    

    第三个方法:getServletMappings方法——设置那些请求归SpringMVC管

    两种继承都是

    return new String[]{"/"}

    三,bean的加载控制

    问题:
    SpringMVC只加载它控制的bean(Controller层)
    而Spring加载加载时可能会连同Controller层的bean一起加载了,这就产生了冲突

    解决:
    1、在Spring配置类扫描时扫描具体点,即不扫描Controller层的
    2、直接扫描,然后排除Controller层

    1. @ComponentScan(value="包名",
    2. excludeFilters=FilterType.ANNOTATION,
    3. classes=Controller.class
    4. )

    上面是按照注解来过滤的(@Controller注解的不扫描)

  • 相关阅读:
    揭秘消费者需求:群狼调研助您把握市场先机
    每日练习------定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;
    python正则表达式
    Qt 如何多个项目共用相同代码
    事件总线 EventBus
    【分析笔记】全志 i2c-sunxi.c 控制器驱动分析
    【毕业设计】基于RFID的门禁系统 - 单片机 物联网 嵌入式 stm32
    《代码大全2》第1章 欢迎进入软件构建的世界
    区块链 - 基础知识 - 第一讲
    JVM参数MetaspaceSize的解读
  • 原文地址:https://blog.csdn.net/jtjeeeee/article/details/125415315