「Spring Boot」@RestControllerでクラスを持つクラスをJSONデータで返す
環境
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.Employeeクラスを格納するクラスの定義(EmpLstManager.java)
package com.example.demo; public class EmpLstManager { String sno; //Employeeクラスのインスタンスを格納 Employee emp; public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public Employee getEmp() { return emp; } public void setEmp(Employee emp) { this.emp = emp; } }
3.コントローラクラス処理コード(ListEmpController.java)
package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class ListEmpController { @GetMapping("/objget") public EmpLstManager funA() { // EmpLstManagerクラスのインスタンス生成 EmpLstManager elm = new EmpLstManager(); elm.setSno("1234"); //Employeeクラスのインスタンス生成 Employee emp = new Employee(); emp.setUsername("テスト 太郎"); emp.setAge(32); emp.setAddr("東京新宿"); //Employeeのインスタンスを格納 elm.setEmp(emp); //Employeeクラスを持つクラスを返す return elm; } }
4.プログラム実行
プロジェクトを右クリックして、「実行(R)」->「Spring Boot アノテーション」をクリックします
画面確認
ブラウザ画面で「http://127.0.0.1:8080/obj」getにアクセスすると、画面に以下の結果が表示されます
実行結果
{"sno":"1234", "emp":{"age":32, "username":"テスト 太郎", "addr":"東京新宿" } }