要求方法(@Request Mapping、@GetMapping、@PostMapping)

8255 ワード

0.主な説明


名前説明@ControllerどのControllerが「クエリー@リカバリマッピング」要求に対してクラスをControllerとして指定するかを示します.どのメソッドが処理する名前@requestParamControllerメソッドをマッピングするためのパラメータをセッションに格納して使用します.また、WebリクエストパラメータとWebリクエストパラメータをマッピングするための名前@モデル属性コントローラメソッドのパラメータまたは戻り値を使用して、モデルオブジェクトの名前@SessionAttributeModelオブジェクトの名前をバインドします.Sean@RequestPartMultipartリクエストの場合:Webリクエストパラメータとマッピング可能言語(egov 3.0、Spring 3.1.xから追加)@CommandMapControllerメソッドのパラメータがMap形式で受信された場合、Webリクエストパラメータとマッピング言語(egov 3.0から追加)@Controller AdviceControllerの補助ツールで、コントローラが使用する汎用機能をモジュール化してグローバル書き込みを実現(egov 3.0、Spring 3.2.xから)

@RequestMappingとは?


特定のURLからの要求を受信した場合、どのコントローラが処理するかを知る必要があります.
このとき、特定のurlを要求を実行するコントローラにマッピングする方法は、@RequestMappingである.

2.マッピングを要求する動作


  • SpringBootアプリケーションを実行する場合は、アプリケーションが使用するbaenを含むアプリケーションコンテキストを作成して初期化します.
  • @RequestMappingHandler登録これらの方法は、アプリケーションContextリフレッシュ中に発生します.refreshプロセスでは、Spring Applicationは駆動のために多くのbeanを生成し、そのうちの1つはRequestMappingHandlerMappingである.このbeanには、@RequestMappingとして登録する方法があり、リクエストを受信したときにマッピングを実行します.
  • その後、beanとして登録されたHandlerMappingは、これらの変数を検索し、Adapterを介して実行します.
  • 3.@RequestMappingで使用するプロパティ


    名称タイプ説明valueString[]URL値マッピング条件(default)メソッドは、HTTPリクエストメソッド[]の値をマッピング条件とし、利用可能なメソッドは、GET、POST、HEAD、OPTIONS、PUT、DELETE、URLは、ProductesString[]設定が受信要求ヘッダに一致しない限り、TRACE(7個)paramsString[]HTTP要求パラメータをマッピング条件としてconsumersString[]設定とContent-Type要求ヘッダマッチングを付与する場合にのみ呼び出されます.
  • value

    valueは、接続するurlを表します.通常、ホストアドレスとポート番号の他に、REST APIに基づいてURLを設計する.
  • @RequestMapping(value="/hello")
    上記のマッピングが行われた場合、通常、ローカル環境ではlocalhost:8080/helloを使用してurlを入力します.それだけでなくvalueまたは複数のリクエストを省略することもできます.
    @RequestMapping({"/hello", "/hello-buddy", "/hello/**"}
    前述したように、3つのURLのいずれにも接続可能な複数のリクエストを行うことができる.
    パス変数(@PathVariable)の使用
    それだけでなく、最近のHTTP APIは、リソースパスに識別子を追加するスタイルが好きです.クエリー・パラメータを使用して識別子を追加する方法もありますが、パス変数を使用するとマッピングされた部分を簡単にクエリーできます.
    	@GetMapping("/mapping/{userId}")
    	public String mappingPath(@PathVariable("userId") String data) {
    		log.info("mappingPath userId={}", data);
        	return "ok";
    	}
       
        @GetMapping("mapping/{userId}")
        public String mappingPath(@PathVariable String userId) {
            log.info("mappingPath userId={}", userId);
            return "ok";
        }
    @PathVariable宣言宣言された「userId」はStringデータとしてデータにマッピングされ、下図に示すように、同じパラメータを宣言することは省略できます.
    	@GetMapping("/mapping/users/{userId}/orders/{orderId}")
        public String mappingPath(@PathVariable String userId, @PathVariable Long orderId) {
            log.info("mappingPath userId={}, orderId={}", userId, orderId);
            return "ok";
        }
    同様に、@PathVariableは複数の用途に使用することができる.
  • method

  • requestMethodには8種類あります:GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACEなど.通常、@RequestMappingarnotationでは、以下の方法を使用することができる.
    @RequestMapping(method = RequestMethod.GET, value = "/hello")
    しかし、GET, POST, PUT, PATCH, DELETEMethodには、@GetMappingまたは@PostMappingのような対応するメソッドオプションが適用された名前が存在し、@RequestMappingの下にコードを書くことができ、コードをより簡潔にすることができる.

    また,@RequestMappingはクラスやメソッドに貼り付けることができ,@GetMapping, @PostMapping, @PutMapping, @DeleteMappingなどはメソッドにのみ貼り付けることができる.

    Link


    https://tecoble.techcourse.co.kr/post/2021-06-18-spring-request-mapping/ ,
    https://sarc.io/index.php/development/1139-requestmapping ,
    https://mungto.tistory.com/436 ,
    https://dahliachoi.tistory.com/42 ,