Heim >Java >javaLernprogramm >Wie ordne ich eine HTTP-Anfrage einer Methode zu? Erste Schritte mit SpringBoot: URL-Zuordnung
0x000 Übersicht: Ordnen Sie eine HTTP-Anfrage einer Methode zu. 0x001 @RequestMapping: Diese Annotation kann einem Controller oder einer Methode hinzugefügt werden. Wenn sie dem Controller
hinzugefügt wird, wird eine http
-Anfrage einer Methode
@RequestMapping
Diese Annotation kann zu einem bestimmten Controller
oder einer Methode hinzugefügt werden. Wenn sie zu einem Controller
hinzugefügt wird, werden alle Routen in diesem Controller
zugeordnet. Es werden Kastanien unten angezeigt. Wenn es zur Methode hinzugefügt wird, gibt es kein Präfix (unten werden Kastanien angezeigt).
@RequestMapping
hat die folgenden Attribute
value
: Der Pfad des angeforderten URL
path
: Gleich wie value
method
: Anforderungsmethode
consumes
: Zulässige Medientypen, also Content-Type
produces
: Der entsprechende Medientyp, also Accept
params
: Anforderungsparameter
headers
: Anforderungsheader
zuerst schreiben Controller
, Controller
Das @RestController
in der Kopfzeile markiert diesen Controller als Rest
-Controller:
package com.lyxxxx.rest.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { }
Methode hinzufügen und eine URL
-Übereinstimmung hinzufügen:
@RequestMapping() public Object hello() { return "hello"; }
Erklärung: Oben wurde eine Methode mit dem Namen
hello
hinzugefügt. Wenn keine Attribute angegeben sind, stimmt sie standardmäßig mit allenURL
überein, und die Methode istGET
, sodass wir direkt Weg zum Zugriff auf die RouteGET
$ curl 127.0.0.1:8080 hello $ curl 127.0.0.1:8080/user hello $ curl 127.0.0.1:8080/user/1 hello
@RequestMapping(value = "/hello2") public Object hello2() { return "hello2"; }
Erklärung: auf , sodass beim Zugriff auf
value
diehello2
Methodehello2
$ curl 127.0.0.1:8080/hello2 hello2hello2
@RequestMapping(value = "/hello3/*") public Object hello3() { return "hello3"; }
Beschreibung : Das Obige setztaufauf und stimmt mit allen Zeichen überein, d >
value
Einzelzeichen-Fuzzy-Matching/hello3/*
$ curl 127.0.0.1:8080/hello3/user hello3 curl 127.0.0.1:8080/hello3/1 hello3*
hello3
URL
Erklärung: Das obige setzt
überein, stimmt aber nicht überein
oben festlegen Für$ curl 127.0.0.1:8080/hello4/1 hello4
value
Fuzzy-Übereinstimmung mit vollständigem Pfad/hello4/?
$ 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"}?
hello4/1
hello4/11
Erklärung:
mit dieser Methode übereinstimmen
@RequestMapping(value = "/hello5/**") public Object hello5() { return "hello5"; }
Konfiguration lesenMehrere Pfade stimmen mit
value
$ curl 127.0.0.1:8080/hello5 hello5 $ curl 127.0.0.1:8080/hello5/user/1 hello5/hello5/**
@RequestMapping(value = {"/hello6", "/hello6/1"}) public Object hello6() { return "hello6"; }überein**
hello5
$ 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"; }0x003 method match
in
, Aufzählungswert geschrieben in:
method
RequestMethod
GET
HEAD
POST
PUT
PATCH
DELETE
OPTIONS
$ curl 127.0.0.1:8080/hello7 hello7rrree 0x003 Parameter passen zu
und TRACE
kann es auch mit
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 ...0x004 Beschreibung den obigen Referenzdaten übereinstimmen: „Spring Boot2 The Essence: From Building Von kleinen Systemen zur Architektur und Bereitstellung großer Systeme“
URL
Verwandte Artikel: method
params
Das obige ist der detaillierte Inhalt vonWie ordne ich eine HTTP-Anfrage einer Methode zu? Erste Schritte mit SpringBoot: URL-Zuordnung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!