[SpringBoot JPAを使用したWebアプリケーションの開発:会員登録の処理]


1. Spring Framework : validation

import javax.validation.constraints.NotEmpty;
implementation 'org.springframework.boot:spring-boot-starter-validation'
Form ClassまたはDTOフィールドで、@NotEmpty(message=「xxx Yes/必須」)必要な入力値の検証チェックに使用できます.

2. Validation Check

public String save(@Valid Form form, BindingResult result) {}
Form ClassまたはDTOを使用してパラメータを受信する場合、@Validは簡単に検証できます.
org.springframework.validation.BindingResultオブジェクトを同時に受け入れると、エラー(true/false)を確認できます.
このほか、検証ライブラリの機能も多様なので、確認できます.
会員登録などの保存処理後、リダイレクトするのが一般的です.
return "redirect:/";

3.1. なぜEntityクラスではなくFormクラスやDTOクラスを使用して回収するのか


Entityを繰り返し使用する場合は、Validationチェックも追加する必要があります.
これにより、Entityクラスは実際の操作で複雑になる可能性があります.
したがって、受信するデータのみを含むValidation Checkクラスを作成および管理することをお勧めします.

3.2. なぜFormまたはDTOを使用するのか(再強調...)


[よくある質問]
FormオブジェクトまたはDTOを単独で使用するか、Entityを繰り返し使用するか....
実際の作業で発生する要求の大部分は、EntityとFormの違いをもたらします.
常にEntityを繰り返し使うと、Entityはますます画面に従属し、複雑になります.
メンテナンスの良い方法は、純粋にEntityとしての機能に集中することです.
1. Entity의 핵심 비즈니스 로직을 수정하니 화면의 기능이 망가짐
2. 화면 기능에 따라서 Entity를 수정했더니 핵심 비즈니스 로직이 망가짐
クエリの結果も、特にAPIの作成時にEntityをWebに戻すべきではありません.
APIは、例えば、Entityに重要な個人情報(身分証明書番号、パスワードなど)がある場合に、データを画面に戻す仕様です.
また、Entityにフィールドを追加すると、API仕様が変化します(=不完全なAPI仕様)