「Spring Boot 2.6」アノテーション@RestControllerでMapの戻り値を返す

2022年1月24日

環境
Windows10 64bit
Spring Boot 2.6.2
Spring Tool Suite 4
JDK 11

アノテーション@RestController
REST コントローラーに設定します。このアノテーションが設定されると、クラスが DI コンテナへの登録対象としてマークされます。
@Controller および @ResponseBody でアノテーションが付けられている便利なアノテーション。
このアノテーションを保持する型は、@RequestMapping メソッドがデフォルトで @ResponseBody セマンティクスを想定するコントローラーとして扱われます。
書式
@GetMapping(“/パス名")
public Map<Integer, String> 関数名() {
処理コード
}

使用例

package com.example.demo;

import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MapTypeController {

      // 戻り値map型<Integer,String>
      @GetMapping("/mapA")
      public Map<Integer, String> funA() {
            // HashMapを使用します
            Map<Integer, String> mp = new HashMap<>();
            mp.put(101, "東京");
            mp.put(202, "大阪");
            mp.put(303, "福岡");
            mp.put(405, "横浜");
            // mapを返す
            return mp;
      }

      // 戻り値map型<String,String>
      @GetMapping("/mapB")
      public Map<String, String> funB() {
            // HashMapを使用します
            Map<String, String> mp = new HashMap<>();
            mp.put("tokyo", "東京");
            mp.put("oosaka", "大阪");
            mp.put("fukuoka", "福岡");
            mp.put("yokohama", "横浜");
            // mapを返す
            return mp;
      }

}

プログラム実行
プロジェクトを右クリックして、「実行(R)」->「Spring Boot アノテーション」をクリックします

画面確認
1.ブラウザ画面で「http://127.0.0.1:8080/mapA」にアクセスすると、画面に以下の結果が表示されます
{“101″:"東京","405″:"横浜","202″:"大阪","303″:"福岡"}

2.ブラウザ画面で「http://127.0.0.1:8080/mapB」にアクセスすると、画面に以下の結果が表示されます
{“tokyo":"東京","fukuoka":"福岡","yokohama":"横浜","oosaka":"大阪"}

Spring Boot

Posted by arkgame