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

  • 相关阅读:
    智能电表上的模块发热正常吗?
    使用.NET简单实现一个Redis的高性能克隆版(一)
    MySQL 创建表使用CURRENT_TIMESTAMP时间戳——筑梦之路
    Django在PyCharm中启动失败的解决办法
    关于Mysql使用left join写查询语句执行很慢的问题解决
    Rome链分析
    Go : const rotates恒定旋转(附完整源码)
    第七章 查找 七、红黑树
    低功耗工业RFID设备应用
    OSI协议
  • 原文地址:https://blog.csdn.net/jtjeeeee/article/details/125415315