web-dev-qa-db-fra.com

Quelle est la différence entre @PathParam et @PathVariable

À ma connaissance, les deux servent le même but. Sauf le fait que @PathVariable provient de Spring MVC et @PathParam provient de JAX-RS. Des idées à ce sujet?

34
suresh

@ PathVariable et @ PathParam sont tous deux utilisés pour accéder aux paramètres de Modèle d'URI

Différences:

  • Comme vous le mentionnez, @PathVariable est du printemps et @PathParam est de JAX-RS .
  • @PathParam peut être utilisé avec REST uniquement, où @PathVariable est utilisé dans Spring afin que cela fonctionne dans MVC et REST.
20
Premraj

PathParam:

Affecter des valeurs de paramètre d'URI aux arguments de la méthode. Au printemps, c'est @RequestParam.

Par exemple.,

http://localhost:8080/books?isbn=1234

@GetMapping("/books/")
    public Book getBookDetails(@RequestParam("isbn") String isbn) {

PathVariable:

Affecter des valeurs de substitution d'URI aux arguments de la méthode.

Par exemple.,

http://localhost:8080/books/1234

@GetMapping("/books/{isbn}")
    public Book getBook(@PathVariable("isbn") String isbn) {
14
Omkar

@ PathParam est une annotation de paramètre qui vous permet de mapper des fragments de chemin d'URI variables dans votre appel de méthode.

@Path("/library")
public class Library {

   @GET
   @Path("/book/{isbn}")
   public String getBook(@PathParam("isbn") String id) {
      // search my database and get a string representation and return it
   }
}

pour plus de détails: JBoss DOCS

Dans Spring MVC, vous pouvez utiliser l'annotation @ PathVariable sur un argument de méthode pour associer celle-ci à la valeur d'une variable de modèle d'URI: DOCS DE PRINTEMPS

8
FuSsA

@PathParam est une annotation de paramètre qui vous permet de mapper des fragments de chemin d'URI variables dans votre appel de méthode.

@PathVariable est d'obtenir un espace réservé à partir de l'URI (Spring l'appelle un modèle d'URI)

2
Parag P. Phatak