|
Spring Bootは、Springフレームワークをベースにしたオープンソースのアプリケーション開発フレームワークで、Springアプリケーションのセットアップと開発プロセスを簡素化し、開発効率を向上させるように設計されています。パラメータの受信は、Spring Bootにおいて非常に一般的な要件です。この記事では、Spring Bootでパラメータを受け取る19の方法を詳しく説明し、シンプルなものから複雑なものまで、様々なシナリオを網羅します。 1. メソッドパラメータにリクエストパラメータを直接記述します。この方法は、リクエストパラメータが少ない場合に適しています。 @GetMapping("/user") public String getUser(String name, String phone) { System.out.println("Name: " + name); System.out.println("Phone: " + phone); return "User Info"; } 2. @RequestParamアノテーションを使用するURL 内のクエリ文字列を介してパラメータを渡す必要がある場合は、@RequestParam アノテーションを使用できます。 @GetMapping("/user") public String getUser(@RequestParam String name, @RequestParam String phone) { // 实现逻辑return "User Info"; } 3. エンティティクラスを通じてパラメータを受け取るリクエストパラメータが多数ある場合は、それらをエンティティクラスにカプセル化できます。 @PostMapping("/user") public String createUser(User user) { // 使用user对象return "User Created"; } 4. HttpServletRequestを使用してパラメータを受け取るリクエスト パラメータは、Servlet API を通じて直接取得できます。 @GetMapping("/user") public String getUser(HttpServletRequest request) { String name = request.getParameter("name"); String phone = request.getParameter("phone"); // 实现逻辑return "User Info"; } 5. @PathVariableアノテーションを使用してRESTスタイルのパスパラメータを受け取るURL パス内の変数を処理するために使用されます。 @GetMapping("/user/{id}") public String getUserById(@PathVariable String id) { // 实现逻辑return "User ID: " + id; } 6. @ModelAttributeアノテーションを使用してフォームデータを受け取るこれは主にフォームの送信、リクエストパラメータをオブジェクトにバインドするために使用されます。 @PostMapping("/user") public String updateUser(@ModelAttribute User user) { // 使用user对象retu 7. @RequestBody アノテーションを使用して JSON リクエスト本文を受信します。これは、リクエスト本文が JSON 形式の POST リクエストに適しています。 @PostMapping("/user") public String createUser(@RequestBody User user) { // 使用user对象return "User Created"; } 8. 配列パラメータの受け取り@GetMapping("/users") public String getUsers(@RequestParam String[] names) { // 处理names数组return "User Names"; }
9. 設定されたパラメータを受信する@RequestParam アノテーションを使用してコレクション パラメータをバインドします。 @GetMapping("/users") public String getUsers(@RequestParam List<String> names) { // 处理names列表return "User Names"; } 10. @RequestHeader アノテーションを使用して、HTTP リクエスト ヘッダー情報を取得します。 @GetMapping("/user") public String getUser(@RequestHeader("User-Agent") String userAgent) { return "User Agent: " + userAgent; } 11. @CookieValue アノテーションを使用して Cookie 値を取得します。 @GetMapping("/user") public String getUser(@CookieValue(value = "sessionID", defaultValue = "default") String sessionId) { return "Session ID: " + sessionId; } 12. @SessionAttributeアノテーションを使用してセッション属性を取得する@GetMapping("/user") public String getUser(@SessionAttribute("user") User user) { return "User Name: " + user.getName(); }
13. @MatrixVariable アノテーションを使用して、パスからマトリックス変数を取得します。 @GetMapping("/photos/{photoId}/comments/{commentId}") public String getComment(@PathVariable String photoId, @PathVariable String commentId, @MatrixVariable(pathVar = "commentId") String tags) { // 处理tags return "Comment Info"; } 14. MultiValueMap と Map を使用して、フォームから送信されたパラメータを処理します。 @PostMapping("/users") public String createUsers(@RequestParam MultiValueMap<String, String> params) { // 处理params return "Users Created"; } @GetMapping("/users") public String getUsers(@RequestParam Map<String, String> params) { // 处理params return "Users Info"; } 15. @RequestPartを使用してmultipart/form-dataリクエストを処理する@PostMapping("/upload") public String uploadFile(@RequestPart("file") MultipartFile file) { // 处理文件上传return "File Uploaded"; }
16. カスタムパラメータリゾルバHandlerMethodArgumentResolver HandlerMethodArgumentResolver インターフェイスを実装して、パラメータ解決ロジックをカスタマイズします。 17. @RequestParam Mapを使用してすべてのクエリパラメータを取得します@GetMapping("/user") public String getUser(@RequestParam Map<String, String> allParams) { // 处理allParams return "All Params"; }
18. @PathVariable を使用して、マップ内のすべてのパス変数を受け取ります。 @GetMapping("/users/{ids}") public String getUsers(@PathVariable Map<String, String> pathVars) { // 处理pathVars return "Path Variables"; } 19. Spring Bootの自動構成と環境プロパティを活用するSpring Boot は自動構成と環境プロパティ機能を提供しており、application.properties または application.yml でデフォルトのパラメータを構成し、実行時に @Value アノテーションを使用してそれらを取得できます。 @Component public class MyComponent { @Value("${my.custom.property}") private String customProperty; // 使用customProperty } Spring Bootでパラメータを受け取る方法は19通りあります。それぞれの方法には適用可能なシナリオと注意点があり、開発者はそれぞれのニーズに合わせて最適な方法を選択する必要があります。これらのパラメータ受け取り方法を習得することで、Spring Bootアプリケーションの開発効率と柔軟性が大幅に向上します。 |