Maison >Java >javaDidacticiel >Comment mapper une requête http à une méthode ? Premiers pas avec SpringBoot : mappage d'URL
0x000 Présentation : mappez une requête http à une méthode. 0x001 @RequestMapping : Cette annotation peut être ajoutée à un contrôleur ou à une méthode. Si elle est ajoutée au contrôleur,
mappe une http
requête à une méthode
@RequestMapping
Cette annotation peut être ajoutée à un certain Controller
ou à une méthode. Si elle est ajoutée à un Controller
, toutes les routes de ce Controller
seront mappées. Ce préfixe sera ajouté (. il y aura des châtaignes en dessous). S'il est ajouté à la méthode, il n'y aura pas de préfixe (il y aura des châtaignes en dessous).
@RequestMapping
possède les attributs suivants
value
: Le chemin du URL
path
: Identique à value
method
: Méthode de requête
consumes
: Types de médias autorisés, c'est-à-dire Content-Type
produces
: Le type de média correspondant, c'est-à-dire Accept
params
: Paramètres de la requête
headers
: En-tête de demande
écrivez d'abord Controller
, Controller
Le @RestController
dans l'en-tête marque ce contrôleur comme un contrôleur Rest
:
package com.lyxxxx.rest.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { }
Ajoutez une méthode et ajoutez une correspondance URL
:
@RequestMapping() public Object hello() { return "hello"; }
Explication : Une méthode est ajoutée ci-dessus, nommée
hello
Si aucun attribut n'est donné, tous lesURL
seront mis en correspondance par défaut, et la méthode estGET
, donc nous pouvons directement Utiliser la méthodeGET
pour accéder à l'itinéraire$ curl 127.0.0.1:8080 hello $ curl 127.0.0.1:8080/user hello $ curl 127.0.0.1:8080/user/1 hello
Correspondance exacte
@RequestMapping(value = "/hello2") public Object hello2() { return "hello2"; }
Instructions : ci-dessus Définissez
value
surhello2
, donc l'accès àhello2
exécutera la méthodehello2
$ curl 127.0.0.1:8080/hello2 hello2
correspondance floue des caractères
@RequestMapping(value = "/hello3/*") public Object hello3() { return "hello3"; }
Explication : L'ensemble ci-dessus
value
sur/hello3/*
, et*
correspond à tous les caractères, c'est-à-dire que tous leshello3
sous accèsURL
correspondront à ceci prévention$ curl 127.0.0.1:8080/hello3/user hello3 curl 127.0.0.1:8080/hello3/1 hello3
Correspondance floue à un seul caractère
$ curl 127.0.0.1:8080/hello4/1 hello4
Remarque : définissez
value
sur ,/hello4/?
correspond à un seul caractère, correspondant à?
, mais ne correspondra pas àhello4/1
hello4/11
$ curl 127.0.0.1:8080/hello4/1 hello4 $ curl 127.0.0.1:8080/hello4/12 {"timestamp":"2018-07-25T05:29:39.105+0000","status":404,"error":"Not Found","message":"No message available","path":"/hello4/12"}
@RequestMapping(value = "/hello5/**") public Object hello5() { return "hello5"; }
Remarque : est défini sur
value
ci-dessus et/hello5/**
correspond à tous les chemins, donc tous les itinéraires ci-dessous**
correspondront à cette méthodehello5
$ curl 127.0.0.1:8080/hello5 hello5 $ curl 127.0.0.1:8080/hello5/user/1 hello5
@RequestMapping(value = {"/hello6", "/hello6/1"}) public Object hello6() { return "hello6"; }
$ curl 127.0.0.1:8080/hello6 hello6 $ curl 127.0.0.1:8080/hello6/1 hello6F
// resources/application.properties app.name=hello7 // com.lyxxxx.rest.controller.HelloController @RequestMapping(value = "${app.name}") public Object hello7() { return "hello7"; }
$ curl 127.0.0.1:8080/hello7 hello7
dans la requête, la valeur d'énumération écrite en method
: RequestMethod
GET
HEAD
POST
PUT
PATCH
DELETE
OPTIONS
TRACE
package com.lyxxxx.rest.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController public class MethodController { @RequestMapping(path = "method/get", method = RequestMethod.GET) public Object get() { return "get"; } @RequestMapping(path = "method/head", method = RequestMethod.HEAD) public Object head() { return "head"; } @RequestMapping(path = "method/post", method = RequestMethod.POST) public Object post() { return "post"; } @RequestMapping(path = "method/put", method = RequestMethod.PUT) public Object put() { return "put"; } @RequestMapping(path = "method/patch", method = RequestMethod.PATCH) public Object patch() { return "patch"; } @RequestMapping(path = "method/delete", method = RequestMethod.DELETE) public Object delete() { return "delete"; } @RequestMapping(path = "method/options", method = RequestMethod.OPTIONS) public Object options() { return "options"; } @RequestMapping(path = "method/trace", method = RequestMethod.TRACE) public Object trace() { return "trace"; } }
$ curl -X GET 127.0.0.1:8080/method/get get $ curl -X POST 127.0.0.1:8080/method/post post $ curl -X DELETE 127.0.0.1:8080/method/delete delete $ curl -X PUT 127.0.0.1:8080/method/put put ...0x003 les paramètres correspondent à en plus de la correspondance
En plus de URL
, il peut également correspondre à method
params
package com.lyxxxx.rest.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class ParamsController { @RequestMapping(path = "/params", params = "userId=1") public Object params() { return "params"; } }
$ curl 127.0.0.1:8080/params?userId=1 params0x004 Remarque et aux données de référence ci-dessus : "L'essence de Spring Boot 2, de la construction de petits systèmes à. Système de déploiement architectural》Articles connexes :
Bases de démarrage avec mybatis (4)----Mappage d'entrée et mappage de sortie
django" "règles de mappage d'url" et "ordre de réponse du serveur"
Vidéos associées :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!