「Spring Boot」@RestControllerでクラスのインスタンスを返すサンプル

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.example.demo;
public class User {
// 年齢age
private int age;
// 名前username
private String username;
// 住所addr
private String addr;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
package com.example.demo; public class User { // 年齢age private int age; // 名前username private String username; // 住所addr private String addr; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } }
package com.example.demo;

public class User {

      // 年齢age
      private int age;
      // 名前username
      private String username;
      // 住所addr
      private String addr;

      public int getAge() {
            return age;
      }

      public void setAge(int age) {
            this.age = age;
      }

      public String getUsername() {
            return username;
      }

      public void setUsername(String username) {
            this.username = username;
      }

      public String getAddr() {
            return addr;
      }

      public void setAddr(String addr) {
            this.addr = addr;
      }

}

2.コントローラクラス(UserController.java)の定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@GetMapping("/user")
public User funA() {
//クラスのインスタンス生成
User user = new User();
//クラスのメソッドを呼び出して、データをセットします
user.setAge(32);
user.setUsername("山田 太郎");
user.setAddr("東京新宿区");
//インスタンスを返す
return user;
}
}
package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @GetMapping("/user") public User funA() { //クラスのインスタンス生成 User user = new User(); //クラスのメソッドを呼び出して、データをセットします user.setAge(32); user.setUsername("山田 太郎"); user.setAddr("東京新宿区"); //インスタンスを返す return user; } }
package com.example.demo;

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

@RestController
public class UserController {

      @GetMapping("/user")
      public User funA() {
            //クラスのインスタンス生成
            User user = new User();
            
            //クラスのメソッドを呼び出して、データをセットします
            user.setAge(32);
            user.setUsername("山田 太郎");
            user.setAddr("東京新宿区");
            
            //インスタンスを返す
            return user;
      }

}

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

画面確認
ブラウザ画面で「http://127.0.0.1:8080/user」にアクセスすると、画面に以下の結果が表示されます
{“age":32,"username":"山田 太郎","addr":"東京新宿区"}

Spring Boot

Posted by arkgame