À 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?
@ PathVariable et @ PathParam sont tous deux utilisés pour accéder aux paramètres de Modèle d'URI
Différences:
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) {
@ 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
@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)