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