web-dev-qa-db-ja.com

@PathParamと@PathVariableの違いは何ですか

私の知る限り、両者は同じ目的を果たします。 @PathVariableはSpring MVCからのものであり、@PathParamはJAX-RSからのものです。これに関する洞察はありますか?

34
suresh

@ PathVariable および @ PathParam は両方とも RIテンプレート からパラメーターにアクセスするために使用されます

違い:

  • 言及したように、@ PathVariableはspringから、@ PathParamは JAX-RS からです。
  • @PathParamは、RESTのみで使用できます。@ PathVariableはSpringで使用されるため、MVCおよびRESTで動作します。
20
Premraj

PathParam:

メソッドの引数にURIパラメーター値を割り当てます。春には、@RequestParam

例えば。、

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

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

PathVariable:

メソッドの引数にURIプレースホルダー値を割り当てます。

例えば。、

http://localhost:8080/books/1234

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

@ 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テンプレート変数の値にバインドできます。 春ドキュメント

8
FuSsA

@PathParamは、変数URIパスフラグメントをメソッド呼び出しにマップできるようにするパラメーターアノテーションです。

@PathVariableは、URIからプレースホルダーを取得することです(SpringはそれをURIテンプレートと呼びます)

2
Parag P. Phatak