Maison > Java > javaDidacticiel > le corps du texte

Comment mapper une requête http à une méthode ? Premiers pas avec SpringBoot : mappage d'URL

php是最好的语言
Libérer: 2018-07-27 10:24:02
original
5812 Les gens l'ont consulté

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,

0x000 Aperçu

mappe une http requête à une méthode

. 0x001 @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

0x002 itinéraire correspondant

  1. é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 {
    
    }
    Copier après la connexion
  2. Ajoutez une méthode et ajoutez une correspondance URL :

        @RequestMapping()
        public Object hello() {
            return "hello";
        }
    Copier après la connexion

    Explication : Une méthode est ajoutée ci-dessus, nommée hello Si aucun attribut n'est donné, tous les URL seront mis en correspondance par défaut, et la méthode est GET, donc nous pouvons directement Utiliser la méthode GET 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
    Copier après la connexion
  3. Correspondance exacte

    @RequestMapping(value = "/hello2")
    public Object hello2() {
        return "hello2";
    }
    Copier après la connexion

    Instructions : ci-dessus Définissez value sur hello2, donc l'accès à hello2 exécutera la méthode hello2

    $ curl 127.0.0.1:8080/hello2
    hello2
    Copier après la connexion
  4. correspondance floue des caractères

    @RequestMapping(value = "/hello3/*")
    public Object hello3() {
        return "hello3";
    }
    Copier après la connexion

    Explication : L'ensemble ci-dessus value sur /hello3/*, et * correspond à tous les caractères, c'est-à-dire que tous les hello3 sous accès URL correspondront à ceci prévention

    $ curl 127.0.0.1:8080/hello3/user
    hello3
     curl 127.0.0.1:8080/hello3/1
    hello3
    Copier après la connexion
  5. Correspondance floue à un seul caractère

    $ curl 127.0.0.1:8080/hello4/1
    hello4
    Copier après la connexion

    Remarque : définissez value sur <🎜 ci-dessus >,/hello4/? correspond à un seul caractère, correspondant à ?, mais ne correspondra pas à hello4/1hello4/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"}
    Copier après la connexion
  6. correspondance floue de chemin complet

    @RequestMapping(value = "/hello5/**")
    public Object hello5() {
        return "hello5";
    }
    Copier après la connexion

    Remarque : est défini sur value ci-dessus et /hello5/** correspond à tous les chemins, donc tous les itinéraires ci-dessous ** correspondront à cette méthode hello5

    $ curl 127.0.0.1:8080/hello5
    hello5
    $ curl 127.0.0.1:8080/hello5/user/1
    hello5
    Copier après la connexion
  7. Correspondance de chemins multiples

    @RequestMapping(value = {"/hello6", "/hello6/1"})
    public Object hello6() {
        return "hello6";
    }
    Copier après la connexion
    $ curl 127.0.0.1:8080/hello6
    hello6
    $ curl 127.0.0.1:8080/hello6/1
    hello6F
    Copier après la connexion
  8. Lire la configuration

    // resources/application.properties
    
    app.name=hello7
    
    // com.lyxxxx.rest.controller.HelloController
    
    @RequestMapping(value = "${app.name}")
    public Object hello7() {
        return "hello7";
    }
    Copier après la connexion
    $ curl 127.0.0.1:8080/hello7
    hello7
    Copier après la connexion
La méthode 0x003 correspond à

correspond au

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";
    }


}
Copier après la connexion
$ 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
...
Copier après la connexion
0x003 les paramètres correspondent à

en plus de la correspondance

En plus de URL, il peut également correspondre à methodparams

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";
    }
}
Copier après la connexion
$ curl 127.0.0.1:8080/params?userId=1
params
Copier après la connexion
0x004 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 :

Tutoriel d'introduction CSS3

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal