添加依赖 jar

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

@ResponseBody::

/**
     * 当然更多的是采用此种方法
     * @ResponseBody:
     * 该注解用于将Controller的方法返回的对象,根据HTTP Request Header的Accept的内容,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
     * 一般用于返回json数据
     */
@RequestMapping(value = "/testjson",
       method = RequestMethod.GET,
       produces = {"application/json;charset=UTF-8"})
@ResponseBody
public User exposer() {
   User user = new User();
   user.setId(1);
   user.setName("哈哈");
   user.setBirthday(new Date());
   return user;
}

ModelAndView :

    @RequestMapping(value = "test2" ,method = RequestMethod.GET)
    public ModelAndView test2(){
        Map map = new HashMap();
        map.put("123",789);
        ModelAndView modelAndView = new ModelAndView(new MappingJackson2JsonView(),map);

        return modelAndView;
    }

这下面的使用到的很少:

   /**
     * ResponseBody:
     * 可以将如下数据做成json
     * 基本数据类型 如boolean String int等
     * Map类型数据 集合或数组 实体对象 实体对象集合
     * @return
     */
    @RequestMapping(value="/testjson",method=RequestMethod.GET)
    public @ResponseBody TbUser getCourseInJson(){
        TbUser tbUser = new TbUser();
        tbUser.setUsername("晓晓");
        tbUser.setId(1);
        tbUser.setCreationtime(new Date());
        return  tbUser;
    }

    /**
     * ResponseEntity(tbUser, HttpStatus.OK);
     * 第一个参数为返回的数据,第二个参数是状态码 可以返回404
     * ResponseEntity高于@ResponseBody
     * 定义返回HttpHeaders 和 HttpStatus
     * @return
     */
    @RequestMapping(value="/jsontype",method=RequestMethod.GET)
    public ResponseEntity<TbUser> getCourseInJson2(){
        TbUser tbUser = new TbUser();
        tbUser.setUsername("晓晓");
        tbUser.setId(1);
        tbUser.setCreationtime(new Date());
        return new ResponseEntity<TbUser>(tbUser, HttpStatus.OK);
    }

在不是ResponseEntity的情况下才会去检查有没有@ResponseBody注解,如果响应类型是ResponseEntity可以不写@ResponseBody注解,写了也没有关系