はじめに
こんにちは!さいけです。
本記事は、「SpringBoot x Lombok構成でJSONを返却する方法」について紹介します。
前提
- IntelliJ IDEAでLombokが有効設定になっている
- build.gradleもしくはpom.xmlに「org.projectlombok:lombok」が追加されている
開発環境
- Java8
- IntelliJ IDEA
- SpringBoot 2.1.3.RELEASE
SpringBoot x Lombok構成でJSONを返却する方法
SpringBoot x Lombok構成でJSONを返却する方法を紹介します。
実装サンプルクラスを例に、追って説明していきます。
Controllerクラスのサンプル
リクエストパラメーターを受け取り、値を返却するコントローラクラスです。
@RestController
public class PersonController {
@GetMapping(value = "/json")
public PersonEntity jsonSample() {
return new PersonEntity("john", 20);
}
}
Entityクラスのサンプル
Entityクラスです。
Lombokアノテーションである@Getterと@AllArgsConstructorがクラスに付与されています。
@Getter
@AllArgsConstructor
public class PersonEntity {
private String name;
private Integer age;
}
- @Getter … Getterクラスを自動生成してくれます。
- @AllArgsConstructor … 全メンバをセットするためのコンストラクタを生成します。
JSONが返却されているか見てみる
curlでリクエストしてみます。
$ curl localhost:8080/json
以下のようなJSONレスポンスが返却されています。
{"name":"john","age":20}
おまけ:JSONの返却値を追加する
返却値に「Michael、22歳」を追加します。
以下のように、Controllerクラスを修正します。
@GetMapping(value = "/json")
public List<PersonEntity> jsonSample() {
List<PersonEntity> personEntityList = new ArrayList<>();
personEntityList.add(new PersonEntity("john", 20));
personEntityList.add(new PersonEntity("Michael", 22));
return personEntityList;
}
以下のようなJSONレスポンスに変わります。
[{"name":"john","age":20},{"name":"Michael","age":22}]
おわりに
「SpringBoot x Lombok構成でJSONを返却する方法」について紹介しました。
今回は、一部のLombokしか利用していませんが、他にもたくさんあるので興味があれば是非調べてみてください。
コメント