В чем разница между @PathParam и @PathVariable

Насколько мне известно, обе служат той же цели. Кроме того, что @PathVariable находится из spring framework и @PathParam от Javax.ws.rs. Любые идеи по этому поводу?

Ответ 1

@PathParam представляет собой аннотацию параметра, которая позволяет вам сопоставлять фрагменты фрагмента переменной URI в ваш вызов метода.

@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
   }
}

для более подробной информации: JBoss DOCS

В Spring MVC вы можете использовать аннотацию @PathVariable в аргументе метода, чтобы привязать ее к значению переменной шаблона URI для более подробной информации: SPRING DOCS

Ответ 2

@PathParam представляет собой аннотацию параметра, которая позволяет вам сопоставлять фрагменты фрагмента переменной URI в ваш вызов метода.

@PathVariable заключается в получении некоторого заполнителя из URI (Spring называть его шаблоном URI)

Ответ 3

PathParam:

Назначить значения параметров URI аргументам метода.

Eg.

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

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

PathVariable:

Чтобы присвоить значениям заполнителя URI аргументам метода.

Eg.

http://localhost:8080/books/1234

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

Ответ 4

@PathVariable

@PathVariable - это аннотация, которая используется в URI для входящего запроса. Давайте посмотрим ниже

http://localhost:8080/restcalls/101?id=10&name=xyz

@RequestParam

аннотация @RequestParam, используемая для доступа к значениям параметров запроса из запроса.

public String getRestCalls(
@RequestParam(value="id", required=true) int id,
@RequestParam(value="name", required=true) String name){...}

Примечание

все, что мы запрашиваем с вызовом отдыха i.e, @PathVariable

к чему мы обращаемся для записи запросов, т.е. @RequestParam