技術共有

SpringBoot の共通アノテーション

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

@レストコントローラ

@ResponseBodyと@Controllerを組み合わせたもので、

@Controller はクラスがコントローラーであることを示し、@ResponseBody はコントローラーのメソッドによって返されたオブジェクトがビューとしてではなく HTTP 応答の本文として直接使用されることを示します。

パラメータリストに記述されたコメント

@パス変数

@GetMapping("/users/{userId}")

  • URL テンプレートから変数を抽出するために使用されます。
  • RESTful API を定義すると、それを使用して URL で定義されたパス パラメーターを取得できます。
  • たとえば、URL パターンがある場合、/users/{userId}、リクエストされた URL は/users/123、それで123として使用できますuserIdコントローラーのメソッドに渡されるパラメーター。
  • 通常は一緒に@RequestMappingまたは@GetMapping@PostMapping他のアノテーションと組み合わせて使用​​します。
  1. @GetMapping("/users/{userId}")
  2. public User getUserById(@PathVariable("userId") int userId) { // 根据userId获取用户信息 }

@リクエストパラメータ

  • リクエストのクエリパラメータから値を抽出するために使用されます。
  • これにより、URL のクエリ文字列部分にアクセスできるようになります。?name=value
  • リクエストにパラメータが指定されていない場合でも使用できますrequired=falseプロパティはオプションに設定されるか、defaultValueこのプロパティはデフォルト値を提供します。
  • 通常は一緒に@RequestMappingまたは@GetMapping@PostMapping他のアノテーションと組み合わせて使用​​します。
  1. @GetMapping("/search")
  2. public List<User> searchUsers(@RequestParam(value = "name", required = false) String name) { // 根据提供的name参数搜索用户 }

@リクエストボディ

  • @RequestBodyクライアントから送信されたリクエスト本文 (JSON、XML など) を (Jackson や JAXB などの適切なコンバーターを介して) 自動的に変換し、オブジェクトにバインドできます。
  • 使用するとき@RequestBodyの場合、クライアントによって送信されるリクエストには空ではないリクエスト本文が含まれることが期待されます。リクエスト本文が空の場合、Spring は例外をスローします。
  • HTTP リクエストの本文をコントローラー メソッドのパラメーターにマッピングするために使用されます。
  • 主に POST、PUT、PATCH などのリクエストに使用されます。通常、リソースを作成または更新するためにクライアントがデータを送信する必要があります。
  1. @PostMapping("/users")
  2. public ResponseEntity<?> addUser(@RequestBody User user) {
  3. // 将接收到的User对象保存到数据库
  4. userService.addUser(user);
  5. return ResponseEntity.ok().build();
  6. }