機能: URL パスからパラメータ値を抽出し、メソッドのパラメータにバインドするために使用されます。クライアントが HTTP リクエストを送信するとき、URL にはパラメータを渡すために使用されるいくつかのプレースホルダー (PathVariable) が含まれる場合があります。これらのパラメーター値は、アノテーションを使用して抽出し@PathVariable
、メソッドで処理できます。
使用手順:
-
コントローラーの処理メソッドでは、
@PathVariable
アノテーションを使用してメソッドのパラメーターでプレースホルダーの名前を宣言し、バインドされるパラメーターを指定します。 -
クライアントが HTTP リクエストを送信すると、対応するパラメータ値が含まれており、Spring フレームワークはこれらのパラメータ値を自動的に抽出し、処理メソッドのパラメータに渡します。
例: 次の URL を想定します。/users/{id}
@Controller
public class UserController {
@GetMapping("/users/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
// 在此处通过id参数查询数据库获取对应的User对象
// 然后返回User对象
User user = userRepository.getUserById(id);
if (user != null) {
return ResponseEntity.ok(user);
} else {
return ResponseEntity.notFound().build();
}
}
}
この例では、パラメータは@PathVariable Long id
URL パスから抽出され、メソッドのパラメータid
にバインドされます。この時点で、クライアントがリクエストを送信すると、Spring はそれを抽出し、パラメータとしてメソッドに渡します。getUserById
id
/users/123
123
id
getUserById
注:@PathVariable
パラメータ値を正しくバインドするには、アノテーションのパラメータ名が URL 内のプレースホルダ名と一致している必要があります。名前が一致しない場合は、@PathVariable("customId")
を使用してプレースホルダーの名前を明示的に指定できます。