SpringMVC应用的控制器需要依赖表现层(view)技术,在服务端把数据渲染成html后返回给浏览器,而RESTful应用的控制器直接返回一个对象,这个对象会被spring转成json格式写到http响应中。 以下是一个简单的RESTful控制器:
@RestController public class GreetingController { private static final String template = "Hello, %s!"; private final AtomicLong counter = new AtomicLong(); @GetMapping("/greeting") public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) { return new Greeting(counter.incrementAndGet(), String.format(template, name)); } }可以看到该控制器直接return一个对象。
RESTful应用一般用在前后端分离的项目,RESTful应用返回的json数据可以被前端项目(如nodejs)渲染成html后再返回给浏览器。SpringMVC一般用在前后端不分离的项目,因为View层已经完成了HTML的渲染。
参考文献:https://spring.io/guides/gs/rest-service/