Maison >Java >javaDidacticiel >Quel est le rôle de @RestController dans SpringBoot http

Quel est le rôle de @RestController dans SpringBoot http

王林
王林avant
2023-05-20 15:31:06859parcourir

@RestController

@RestController = @Controller + @ResponseBody. Les deux camarades à droite du signe égal introduisent brièvement quelques phrases pour comprendre le sens de notre @RestController :

@Controller Injectez la classe actuellement modifiée dans le Conteneur SpringBoot IOC, de sorte que Cette classe soit instanciée lors de l'exécution du projet dans lequel se trouve la classe. Bien sûr, cela a aussi un effet sémantique, ce qui signifie que cette classe agit comme un Controller

@ResponseBody Sa fonction fait en bref référence aux données renvoyées par toutes les interfaces API de cette classe, que votre méthode correspondante renvoie Map ou autre Objet, il sera renvoyé au client sous la forme d'une chaîne Json. Je l'ai essayé si le type renvoyé est String, ce sera toujours String.

@RestController@RequestMapping("test")public class SampleController {

@GetMapping public Map testGet() {

retourner un nouveau HashMap(){{

put("name", "springboot" );

}};

}

@GetMapping(path = "str")

public String testGetStr() { return "OK" }}

Cette partie du code renvoie une chaîne JSON pour Map. est toujours String

Après avoir remplacé @RestController par @Controller, la valeur de retour de /test est la suivante :

Comme vous pouvez le voir dans le rapport d'erreur, lorsque @Controller est modifié, Spring pense qu'il renverra une vue (c'est-à-dire , MVC C) au milieu, mais ce qui est renvoyé est une Map.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer