Eh bien, les réponses ci-dessus sont correctes dans leur contexte, mais je vous donne un exemple pratique.
Dans de nombreux scénarios, dans le cadre de l'API, nous devons fournir des points de terminaison pour rechercher une entité en fonction de certains critères. Maintenant, en utilisant JPA, vous n'avez même pas besoin d'écrire des requêtes, il suffit de créer une interface et des méthodes avec la nomenclature spécifique de Spring-JPA. Pour exposer ces API, vous créerez une couche de service qui appellerait simplement ces méthodes de référentiel et enfin des contrôleurs qui exposeront les points de terminaison en appelant la couche de service.
Ce que Spring a fait ici, vous permet d'exposer ces points de terminaison à partir de telles interfaces (référentiels) qui sont généralement des appels GET pour rechercher une entité et en arrière-plan génère les fichiers nécessaires pour créer des points de terminaison finaux. Donc, si vous utilisez @RepositoryRestResource, il n'est pas nécessaire de créer une couche Service / Controller.
D'autre part, @RestController est un contrôleur qui traite spécifiquement les données json et le reste du travail en tant que contrôleur. En bref @Controller + @ResponseBody = @RestController.
J'espère que cela t'aides.
Voir mon exemple de travail et mon blog pour le même:
http://sv-technical.blogspot.com/2015/11/spring-boot-and-repositoryrestresource.html
https://github.com/svermaji/Spring-boot-with -hibernate-no-controller