知っておくべき最も重要なことは、Spring コンテナー (IOC) です。これに加えて、Java アノテーションの基本的な知識が必要です。 Spring Boot アプリケーションには注釈がたくさんあるためです。最後になりましたが、REST の概念、少なくとも基本的な概念を明確にする必要があります。たとえば、GET、POST、PUT、DELETE、リクエストの本文と応答、ヘッダーなどです。
Spring Boot の最も優れた点は、開始するための Web アプリケーションがあることです。いくつかのフォームフィールドとボタンをクリックするだけで、スターターファイルが完成します。これにはポムも含まれます。必要なすべての依存関係を含む XML 。 Spring Initializer: https://start.spring.io/ に移動するだけです。以下のスクリーンショットに示されているように、適切なデータを入力します。次に、右上隅にある「依存関係の追加」ボタンをクリックします。 「Web」と入力して選択します。ログとポジョ用にロンボク島も追加します。
完了したら、生成ボタンをクリックするだけで、これらのファイルを含む zip ファイル (pom.xml) がダウンロードされます。解凍して IDE で開きます。 IntelliJ IDEAを使用します。この IDE は、さまざまな機能を活用して作業効率を向上させるのに役立ちます。 IDE でよく使用されるプラグイン
Spring Boot 全体はアノテーションに依存しています。ニーズや手順に応じてさまざまな注意事項があります。セクションの残りの部分には 4 ~ 5 つの主要なノートがあります。それらを 1 つずつ見て、例に適用してみましょう。
@RestController@RestController クラスで使用されます。クラスを Rest のコントローラーとして定義します。これは、
ResponseBy
の組み合わせを追加するコントローラーの RESTful バージョンです。この方法では、別の ResponseBy
アノテーションを必要とせずに、応答が JSON、XML、または定義された応答タイプに自動的に変換されます。
@RestController public class ArticleRestController {}
残りのアノテーションは、@RestController
クラスで使用されます。
は、特定のエンドポイントを関数またはメソッドにマップするために使用されます。これは、エンドポイントのパス、メソッド、応答タイプ、要求タイプなどを定義するのに役立ちます。
@RequestMapping(value = "/articles", method = RequestMethod.GET, produces = "application/json") public List<Article> getArticles() { }
上の例では、値はマップ先のパスを表します。たとえば、localhost:8080/articles です。メソッドのタイプは GET で、応答として「application/json
」を生成します (ただし、これはデフォルトなのでスキップできます)。
URL 内のクエリ パラメーター、つまり ? key=value&key1=value1
は @RequestParam
アノテーションにより取得されます。関数のパラメータに使用されます。 required
、defaultValue
などのさまざまなオプションがあります。次に、クエリ パラメータを指定されたパラメータにロードします。
@RequestMapping(value = "/article", method = RequestMethod.GET) public Article getArticleByName( @RequestParam(value = "articleName", required = true) String articleName ) {}
上の例では、URL GET localhost/article? を呼び出した場合、 ArticleName=springboot、「springboot」がarticleNameパラメータにロードされます。 reuired=true
としているので、articleName
を渡さないと、ユーザーにエラーがスローされます。
クエリ パラメータを渡さずに、どの記事をロードするかをサーバーがどのようにして知るのか疑問に思ったことはありませんか?この投稿の URL を見てください。投稿の URL にはクエリ パラメーターが含まれておらず、スラッシュで区切られたプレーンな文字列が含まれています。サーバーは PathVariable
を使用してこれを読み取り、/article/{articleslaug}
のようになります。 {articleSlug}
を置き換える文字列は、PathVariable
として扱われます。
@RequestMapping(value = "/article/{articleSlug}", method = RequestMethod.GET) public Article getArticle(@PathVariable("articleSlug") String articleSlug) {}
{articleSlug}
は、RequestMapping
と PathVariable
({}
なし) で同じである必要があることに注意してください。一致しない場合は読み込まれません。
POST メソッドまたは PUT メソッドの場合、URL 経由ですべてのデータを取得できるわけではありません。これらのメソッドには適切なリクエスト本文があります。 RequestBody
アノテーションは、指定されたリクエスト本文をパラメータに自動的にマッピングするのに役立ちます。主にJSONからPOJOへ。
@RequestMapping(value = "/article", method = RequestMethod.POST) public Article createArticle(@RequestBody NewArticlePojo newArticle){}
リクエスト本文は自動的に NewArticlePojo
クラスにマップされ、フィールドはキーに基づいて設定されます。
上記の説明で、特定のメソッドを使用して RequestMapping
を記述したことがお分かりいただけたかと思います。しかし、これは冗長すぎます。この問題を解決するために、Spring Boot は事前定義されたメソッド マッピングを提供します。これらは @RequestMapping
の単なる拡張です。
@GetMapping
は、RequestMapping
を method=RequestMethod
に置き換えるのに使用されます。パラメータを取得します。これを見ると、これが GET リクエストであることがわかります。
PostMapping
は、RequestMapping
の method=RequestMethod
に置き換えられます。同様に、PutMapping
は、RequestMethod.PUT
を
# に置き換えます。 #@DeleteMapping
method=RequestMethod
以上がSpring Boot Rest の一般的なフレームワーク アノテーションは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。