「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":"大阪" }] }