Spring MVC Basics
Spring MVC、MVCアーキテクチャ、DispatcherServlet、@Controller、ViewResolver、Model-View-Controllerパターン
1Javaクラスを Spring MVC コントローラーに変換するアノテーションはどれですか?
Javaクラスを Spring MVC コントローラーに変換するアノテーションはどれですか?
回答
@Controller はクラスを HTTP リクエストを処理する Spring MVC コントローラーとしてマークします。これは @Component の特殊化であり、component scanning がコントローラーを自動的に検出できるようにします。@RestController は REST API 向けに @Controller と @ResponseBody を組み合わせますが、@RequestMapping は URL マッピングを定義するだけで、それ自体ではコントローラーを宣言しません。
2@Controller と @RestController の主な違いは何ですか?
@Controller と @RestController の主な違いは何ですか?
回答
@RestController は @Controller と @ResponseBody を組み合わせたものであり、すべてのメソッドがビュー名の代わりにシリアライズされたデータ(JSON/XML)を自動的に返すことを意味します。@Controller では、データを返すために各メソッドに @ResponseBody を追加する必要があります。@RestController は REST API 向けに設計されており、@Controller はビューレンダリングを伴う従来の Web アプリケーションで使用されます。
3コントローラーのメソッドを URL /users への HTTP POST リクエストにマッピングするにはどうすればよいですか?
コントローラーのメソッドを URL /users への HTTP POST リクエストにマッピングするにはどうすればよいですか?
回答
@PostMapping は、特定の URL への POST リクエストにメソッドをマッピングするための特化したアノテーションです。これは @RequestMapping(method = RequestMethod.POST) のショートカットです。その他の特化したアノテーションには @GetMapping、@PutMapping、@DeleteMapping、@PatchMapping があります。このアプローチは method 属性を伴う @RequestMapping よりも読みやすく簡潔です。
/users/{id} のような URL からパス変数を取得するにはどうすればよいですか?
HTTP リクエストボディの JSON を自動的にデシリアライズするために使用するアノテーションはどれですか?
+17 面接問題