@RestController和 @Controlle是两种不同的控制器实现,它们的主要区别在于如何处理返回的数据和是否支持跳转到视图页面。
- Controller 是一个基本的控制器注解,它允许你将一个类标记为一个Spring MVC控制器处理器。使用 Controller 的类中的方法可以直接返回一个字符串,这通常意味着返回的是一个模板页面,如JSP、FTL或HTML。为了返回这些模板页面,通常需要配合视图解析器来返回到指定的页面。
- RestController 是 Controller 和 ResponseBody 注解的结合体,它提供了一种更简洁的方式来处理返回的JSON数据。使用 RestController 的类中的方法只能返回字符串、对象或JSON等实体对象,而不能跳转到模板页面。这是因为 RestController 默认使用@ResponseBody 注解,它与 @Controller 注解结合,使得所有方法都以JSON格式返回数据。
总结来说,@RestController返回的是json格式的数据,而@Controller返回的是模板页面。