• 学习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注解的不扫描)

  • 相关阅读:
    200行纯前端代码!教你写一个专属TodoList(零基础友好)
    微信小程序毕业设计开题报告_springboot音乐网站
    错误:软件包:kubelet-1.14.2-0.x86_64 (kubernetes)
    【StreamSets】StreamSets 表达式语言篇
    jsp当前页面刷新重载并带参数
    MagicHub中英混语音识别挑战赛开启报名
    推荐一种更加便捷的 Python 数据处理方式
    Macos视频增强修复工具:Topaz Video AI for mac
    微信开发者工具C盘占用大的问题
    【每日一题】买卖股票的最佳时机含冷冻期
  • 原文地址:https://blog.csdn.net/jtjeeeee/article/details/125415315