• springMVC 处理json 及 HttpMessageConverter 接口


     一、SpringMVC处理json的使用

     1、添加依赖jar包

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.8.7</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.7</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.7</version>
    </dependency>

    2、写目方法,使其返回 JSON 对应象或集合

    3、在方法上添加 @ResponseBody 注解:

    @Controller
    @RequestMapping("/user")
    public class UserController
    {
        @Autowired
        private UserService userService;
        
        @RequestMapping("/getUserList")
        @ResponseBody
        public Map<String, Object> getUserList(Model model)
        {
            List<User> userlist = userService.getUserList();
            Map<String, Object> map = new HashMap<>();
            map.put("aaData", userlist);
            return map;
        }
    }

    二、HttpMessageConverter

    1、HttpMessageConverter信息

    HttpMessageConverter<T> Spring3.0 新添加的一个接口,负责求信息转换为一个象(T),象(T为响应信息 

        

    2、HttpMessageConverter 运行原理

     

    (1)HttpInputMessage 将请求的信息先转为 InputStream 对象,InputStream 再由 HttpMessageConverter 转换为 SpringMVC 需要的java对象;

    (2)SpringMVC 返回一个 java 对象, 并通过 HttpMessageConverter 转为响应信息,接着 HttpOutputMessage 将响应的信息转换为 OutputStream,接着给出响应。

    3、 HttpMessageConveter 的实现类

    4、 SpringMVC 默认加载的 HttpMessageConverter 实现类

    (1)DispatcherServlet 默认加载 HttpMessageConveter 的6实现类,如下所示:

    (2)加入 jackson jar包后,启动的时候加载 7 HttpMessageConverter 的实现类,如下所示:

     5、使用 HttpMessageConverter

    (1) @ResponseBody 和 @RequestBody 示例:

    (2) HttpEntity 和 ResponseEntity 示例

  • 相关阅读:
    测试用例的优先级的概念
    Day02.测试用例和测试方法
    day01.测试理论
    开发python 面试题
    4.路径页面接口开发
    ps命令没有显示路径找到命令真实路径
    Linux软链接和硬链接
    Linux文件元数据和节点表结构
    jinjia2语言
    Ansible之YAML语言
  • 原文地址:https://www.cnblogs.com/yufeng218/p/6623329.html
Copyright © 2020-2023  润新知