Welcome五分时时彩为梦而年轻!

好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
  • 客服QQ
  • 官方微信

    好程序员

    专注高端IT职业培训

[JavaEE] 好程序员Java培训分享SpringMVC之@ResponseBody注解

[复制链接]
621 0
叶子老师 发表于 2019-8-22 15:24:30 | 只看该作者 |阅读模式 打印 上一主题 下一主题
好程序员Java培训分享SpringMVC之@ResponseBody注解,本章五分时时彩学习到SpringMVC的服务器端如何提供数据查询服务,这里需要使用两个重要的注解:@ResponseBody和@RestController。

@ResponseBody注解
在前面使用SpringMVC时,Controller中的方法返回值会通过视图处理器ViewResolver处理为页面的URL,然后跳转到对应页面中,如下面例子返回的hello,将转换为/WEB-INF/pages/hello.jsp

@Controller
public class UserController{
@RequestMapping(“/login”)
public String login(){
return “hello”;
}
}
  有时候五分时时彩需要用Controller实现网络服务接口,比如:商品查询、查询天气、新闻数据等。就不需要进行页面跳转而是直接返回数据。

这时候五分时时彩可以在方法上,添加注解:@ResponseBody

@Controller
public class UserController{
@ResponseBody
@RequestMapping(“/login”)
public String login(){
return “hello”;
}
}

在浏览器中直接显示hello文字,也就是说添加了@ResponseBody注解的方法,返回值会通过HTTP响应主体直接发送给浏览器。

类型转换器
默认情况下,使用@ResponseBody返回的数据只能是String类型,其它类型返回时会出现异常:

这里提示没有对应的转换器,这里可以添加转换器将数据转换为特定的格式,如:xml或json等,JSON是数据通信的主要格式,五分时时彩将添加一个JSON格式的转换器。配置方法非常简单,五分时时彩只需要添加jackson-databind依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.7</version>
</dependency>
Jackson库可以实现Java对象和JSON的相互转换,引入Jackson-databind依赖后,SpringMVC会自动添加Jackson的转换器。

转换自定义类型

接下来五分时时彩再进行测试,添加方法测试返回boolean数据

    @ResponseBody
    @RequestMapping("/login2")
    public boolean login2(){
        return false;
    }

五分时时彩进行数据查询时,需要返回自定义类型的数据,如:用户、商品、订单、文章等,这里五分时时彩测试返回自定义类型:

public class User {
    private int id;
    private String username;
    private String birthday;
    private String sex;
    private String address;
      //添加get\set\构造方法
      ...

}
@ResponseBody
@RequestMapping("/login3")
public User login3(){
    User user = new User(1, "张三", "1990-2-1", "男", "武汉");
    return user;
}

可以看到User对象被转换成了JSON格式。再测试对象集合:

    @ResponseBody
    @RequestMapping("/login4")
    public List<User> login4(){
        List<User> users = new ArrayList<>();
        users.add(new User(1, "张三", "1990-2-1", "男", "武汉"));
        users.add(new User(2, "李四", "1990-2-1", "男", "武汉"));
        users.add(new User(3, "王五", "1990-2-1", "男", "武汉"));
        return users;
    }


List集合被转换成了JSON数组,五分时时彩从数据库查询到数据后都会放入对应的实体类集合中,然后把集合转换成JSON格式发送给客户端,有了@ResponseBody和Jackson转换器可以很容易的实现。

@RestController注解

如果一个Controller类主要用于做网络服务,所有的方法都需要添加@ResponseBody注解,五分时时彩可以在类的前面加上@RestController注解,这个注解相当于@Controller+@ResponseBody,也就是说它既可以用于声明类为Controller,也可以给所有方法自动添加@ResponseBody注解。

总结
本章五分时时彩学习了SpringMVC中的@ResponseBody注解,有该注解的方法,可以将数据直接返回给客户端,五分时时彩还学习了利用Jackson库提供的转换器,将自定义类型转换为JSON格式,实际项目中有很多地方需要它们来提供查询数据的服务。
好程序员Java培训官网:http://www.fangbibi.com/


精彩内容,一键分享给更多人!
收藏
收藏0
转播
转播
分享
淘帖0
支持
支持0
反对
反对0
您需要登录后才可以回帖

本版积分规则

关注五分时时彩
好程序员
千锋好程序员

北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

Copyright 2007-2019 北京千锋互联科技五分时时彩 .All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启