「Spring Boot」@RestControllerでリスト(List)があるクラスを返す

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

説明
アノテーション@RestController
REST コントローラーに設定します。このアノテーションが設定されると、クラスが DI コンテナへの登録対象としてマークされます。
@Controller および @ResponseBody でアノテーションが付けられている便利なアノテーション。
使用例
1.Employeeクラスの定義(Employee.java)

package com.example.demo;

public class Employee {

      // 年齢age
      private int age;
      // 名前username
      private String username;
      // 住所addr
      private String addr;
      
      //get setメソッド省略
} 

2.リストがあるクラスを定義する(EmpLstManager.java)

import java.util.List;

public class EmpLstManager {
      String sno;
      // リストでEmployeeクラスのインスタンス
      List<Employee> empLst;

      public String getSno() {
            return sno;
      }

      public void setSno(String sno) {
            this.sno = sno;
      }

      public List<Employee> getEmpLst() {
            return empLst;
      }

      public void setEmpLst(List<Employee> empLst) {
            this.empLst = empLst;
      }

}

3.コントローラクラスの処理コード(ListEmpController.java)

package com.example.demo;

import java.util.ArrayList;
import java.util.List;

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

@RestController
public class ListEmpController {

      @GetMapping("/listobj")
      public EmpLstManager funA() {

            // EmpLstManagerクラスのインスタンス生成
            EmpLstManager elm = new EmpLstManager();
            elm.setSno("1001");

            // EmployeeクラスのインスタンスcftA生成
            Employee cftA = new Employee();
            cftA.setAge(25);
            cftA.setAddr("東京");
            cftA.setUsername("山田 太郎");

            // EmployeeクラスのインスタンスcftB生成
            Employee cftB = new Employee();
            cftB.setAge(35);
            cftB.setAddr("大阪");
            cftB.setUsername("山城 二郎");

            //リストがあるクラス生成
            List<Employee> lstEmp = new ArrayList<>();
            lstEmp.add(cftA);
            lstEmp.add(cftB);
            elm.setEmpLst(lstEmp);

            //リストがあるクラスを返す
            return elm;

      }
}

4.プログラム実行
プロジェクトを右クリックして、「実行(R)」->「Spring Boot アノテーション」をクリックします
画面確認
ブラウザ画面で「http://127.0.0.1:8080/listobj」にアクセスすると、画面に以下の結果が表示されます.

実行結果

{ 
  "sno" :"1001"
  , "empLst" :[
           {"age":25,"
                 username":"山田 太郎","
                 addr":"東京"
                 },
             {"age":35,
                    "username":"山城 二郎",
                    "addr":"大阪"
               }]
} 

 

Spring Boot

Posted by arkgame