简要概述
首先,@Controller、@RestController注解都是用来标注控制器类,处理由DispatcherServlet 分发的请求。
只不过@RestController是Spring4之后加入的注解。
然后使用@RequestMapping 、@RequestParam、@ResponseBody、@RequestBody 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。
下面再来介绍一下这些注解的使用关系和场景
@Controller:返回的是一个页面。
@RestControlle:返回的是json数据。
用过thymeleaf 或freemarker的朋友可能会遇到一个诉求,我一个Controller类中既想有方法去返回html页面,又想有其它的方法去返回json数据能不能做到呢?
当然是可以的!!!
@Controller+@ResponseBody