Ceci est une ancienne révision du document !
Spring MVC controller
Avec Spring MVC, un contrôleur comporte l'annotation @Controller. Il reçoit les requêtes Http en réponses aux RequestMappings définis grâce aux annotations et fournit une réponse Http
@Controller public class HelloController { @GetMapping("/hello") public @ResponseBody String index() { return "Hello world!"; } }
Request
Les annotations @RequestMapping et dérivées permettent de définir le routage :
@Controller @RequestMapping("/persons") class PersonController { @GetMapping("/{id}") public Person getPerson(@PathVariable Long id) { // ... } @PostMapping @ResponseStatus(HttpStatus.CREATED) public void add(@RequestBody Person person) { // ... } }
Url définies :
- GET: /persons/1 ⇒ Affiche la personne d'id 1
- POST: /persons ⇒ Ajoute la personne passée en paramètre
- voir Request mapping
Injection de dépendance :
Certains objets, en fonction de leur type, ou grâce aux annotations, peuvent-être directement passés à une méthode de contrôleur.
Exemple : récupération de la requête HttpServletRequest
@GetMapping("/{id}") public Person getPerson(@PathVariable Long id, HttpServletRequest request) { // ... }
- voir Methods arguments