「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":"東京新宿"
              }
}

 

Spring Boot

Posted by arkgame