En este tutorial encontrarás las diferencias entre las anotaciones de Spring @Controller y @RestController
Un Controller es una clase que es responsable de preparar los datos que serán mostrados por la vista así como seleccionar la vista correcta a mostrar.
En el desarrollo de RESTful Web Services antes de Spring 4 era necesario usar la combinación de @Controller y @ResponseBody para crear un RESTful response. A partir de Spring 4 se agregó la anotación @RestController.
Diferencia entre @Controller y @RestController
@Controller esta anotacion es usada para parcar una clase como Controller en SpringMVC mientras @RestController es un controller especial en RESTful especificacion y equivale a la suma de @Controller y @ResponseBody.
@RestController es añadida a partir de Spring 4.0 esto mejora la creación de RESTful web services y simplifica el uso de las anotaciones @Controller y @ResponseBody.
@Controller en un @Component especial mientras @RestController es un @Controller especial. Como se muestra a continuación para la anotación RestController.
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody public @interface RestControllerAquí un ejemplo del uso de la anotación para crear un RESTFul con @Controller y @RestController
Con RestController
@RestController public class Book { @RequestMapping(value={«/book»}) public Book getBook(){ //…your code return book; } }Con Controller
@Controller public class Book { @RequestMapping(value={«/book»}) @ResponseBody public Book getBook(){ //… your code return book; } }
Deja un comentario