注解的 处理器映射器 和 处理器适配器 介绍

  注解的映射器:

  在 Spring3.1使用 DefaultAnnotationHandlerMapping 注解映射器(根据 DispatcherServlet.properties 配置文件中的配置),

  之后使用 RequestMappingHandlerMapping 注解映射器

  注解的适配器:

  在 Spring3.1 之使用 AnnotationMethodHandlerAdapter 注解器适配器(根据 DispatcherServlet.properties 配置文件中的配置),

  之后使用 RequestMappingHandlerAdapter 注解适配器

配置注解映射器和适配器

  1、xml文件中配置

  1. <!-- 注解的映射器 -->
  2. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
  3. <!-- 注解的适配器 -->
  4. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
  5.  
  6. <!-- 使用mvc:annotation-driven 代替上面的注解映射器 和 适配器的配置 mvc:annotation-driven 还默认加载了很多参数绑定方法,比如json转换解析器就默认加载了
  7. 如果使用mvc:annotation-driven,不用配置RequestMappingHandlerMapping 和 RequestMappingHandlerAdapter
  8. 实际开发使用 mvc:annotation-driven -->
  9. <!-- <mvc:annotation-driven></mvc:annotation-driven> -->

  2、开发注解 Handler

  必须使用 注解的映射器注解的适配器 

  1. // 使用Controller注解来 标识它是一个控制器
  2. @Controller
  3. public class UserController3 {
  4.  
  5. // 用户列表查询
  6. // @RequestMapping 实现对queryUsers()方法 和 URL 进行映射,一个方法对应一个URL
  7. // 一般建议将 URL 和 方法 写成一样
  8. @RequestMapping("/queryUsers")
  9. public ModelAndView queryUsers() throws Exception{
  10. ArrayList<User> userlist = new ArrayList<User>();
  11. User user1 = new User("腾博","123456");
  12. User user2 = new User("小兵","123456");
  13. System.out.println("我来了");
  14. userlist.add(user1);
  15. userlist.add(user2);
  16.  
  17. // 返回ModelAndView
  18. ModelAndView modelAndView = new ModelAndView();
  19. // 相当于request的setAttribute,在jsp页面中通过userlist取数据
  20. modelAndView.addObject("userlist", userlist);
  21.  
  22. // 指定视图
  23. modelAndView.setViewName("/WEB-INF/jsp/users/user.jsp");
  24.  
  25. return modelAndView;
  26. }
  27.  
  28. // 定义其他的方法
  29. // 用户的添加
  30. // 用户的修改
  31. }

  Handler 的 xml 文件配置

  1. <!-- 对于注解的 Handler 可以单个配置
  2. 实际开发中建议使用组件扫描
  3. -->
  4. <!-- <bean class="com.bjxb.ssm.controller.UserController3"/> -->
  5.  
  6. <!-- 组件扫描可以扫描Controller、Service.....
  7. 这里让扫描Controller、指定Controller的包
  8. -->
  9. <context:component-scan base-package="com.bjxb.ssm.controller" />

处理器映射器(HandlerMapping)及处理器适配器(HandlerAdapter)详解(二)的更多相关文章

  1. springmvc 源码分析(三) -- 自定义处理器映射器和自定义处理器适配器,以及自定义参数解析器 和错误跳转自定页面

    测试环境搭建: 本次搭建是基于springboot来实现的,代码在码云的链接:https://gitee.com/yangxioahui/thymeleaf.git DispatcherServlet ...

  2. SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)

    SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...

  3. SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

     3 非注解的处理器映射器和适配器 3.1 非注解的处理器映射器 3.1.1 HandlerMapping处理器映射器 HandlerMapping 负责根据request请求找到对应的Handler ...

  4. 02_springmvc处理器映射器和适配器(补充)

    一.非注解的处理器映射器 HandlerMapping 负责根据request请求找到对应的Handler处理器及Interceptor拦截器,将它们封装在HandlerExecutionChain ...

  5. SpringMVC处理器映射器和方法名称解析器

    所谓配置式开发是指,“处理器类是程序员手工定义的,实现了特定接口的类,然后再在SpringMVC配置文件中对该类进行显式的,明确的注册”的开发方式” 1.处理器映射器HandlerMapping Ha ...

  6. 4.SpringMVC 配置式开发-处理器映射器

    处理器映射器 HandlerMapping HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器, 并将它们封装在HandlerEx ...

  7. SpringMVC源码剖析2——处理器映射器

    1.处理器映射器 HandlerMapping 一句话概括作用: 为 我 们 建 立 起 @RequestMapping 注 解 和 控 制 器 方 法 的 对 应 关 系 . 怎么去查看 第一步: ...

  8. springmvc03 非注解和注解处理器映射器和适配器

    1其它非注解处理器映射器和适配器 .1BeanNameUrlHandlerMapping(映射器) 根据请求url(XXXX.action)匹配spring容器bean的 name 找到对应的bean ...

  9. spring_配置处理器对象、处理器映射器、处理器适配器、视图解析器

    创建spring配置文件:application-context.xml. 创建处理器类 package com.lanou.demo.controller;public class BookCont ...

随机推荐

  1. 浅谈bi工具的含义和不同类型

    ​什么是BI工具? 商业智能(BI)工具是利用一组方法和技术来准备,呈现和帮助分析数据的工具.通过此过程,数据将转化为可操作的业务信息,帮助决策者和最终用户做出更有效的数据驱动决策. 商业智能使用的一 ...

  2. 微服务从代码到k8s部署应有尽有系列(九、事务精讲)

    我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...

  3. 自己写了个Java RMI(远程方法调用)的实现案例

    自己简单写了个Java RMI(远程方法调用)的实现案例. 为了更好理解RMI(远程方法调用).序列化的意义等等,花费三天多的时间肝了一个Java RMI的实现案例. !!!高能预警!!! 代码量有点 ...

  4. jprofiler 查看程序内存泄露

    在最近的工作中,通过JProfiler解决了一个内存泄漏的问题,现将检测的步骤和一些分析记录下来,已备今后遇到相似问题时可以作为参考. 运行环境: Tomcat6,jdk6,JProfiler8 内存 ...

  5. Python——条件语句及其循环

    条件语句及其循环 一. 条件语句 在条件语句中可以使用以下所有的运算符: 算术运算符:+.-.*././/.%.** 关系运算符:>.<.==.<=.>=.!= 测试运算符:i ...

  6. 【二】遗传算法(GA)的MATLAB实现

    essay from:https://wenku.baidu.com/view/ce45bbf44693daef5ef73df3.html 一.MATLAB编程实现GA 二.MATLAB函数调用实现G ...

  7. U3D破解方法

    文件我的云盘里面有,然后操作如下:Win版破解方法:1.安装Unity后(联网破解不成功就断网试试),运行破解补丁.2.点击Browse选择Unity所在路径 例如我的Unity安装路径 F:\Sof ...

  8. MySQL启动报错Failed to open log (file 'D:\phpStudy\PHPTutorial\MySQL\data\mysql_bin.000045', errno 2)

    MySQL报错 191105 9:39:07 [Note] Plugin 'FEDERATED' is disabled. 191105 9:39:07 InnoDB: The InnoDB memo ...

  9. python检查是否有缺失值(有用)以及list,array合并

    df.isnull().any() 用来判断某列是否有缺失值 df.isnull().all() 用来判断某列是否全部为空值

  10. C# 静态成员和方法的学习小结

    C# 静态成员和方法的学习小结 数据成员:数据成员可以分静态变量.实例变量两种.静态成员:静态成员变量是和类相关联的,可以作为类中"共"有的变量(是一个共性的表现),他不依赖特定对 ...