0
上の異なる層の検証アノテーション複数のレイヤーに対するリクエスト(REST、サービス、永続性)を表します。スプリング(ブート)<em>スプリングブート</em>、<em>スプリング</em> MVCと<em>春データ</em>一クラス(<em>MongoDBのデータベースとして</em>で)に使用したWebアプリケーションを考えると同じクラス
いくつかのレイヤーにのみ適用される(または一部によって無視される)ように、クラスのフィールドに検証制約を指定することは可能ですか?
例:
エンティティ@NotEmpty
が注釈
RESTのAPI層
JSR 303 ある(ゲッターとセッター自動生成)
public class User {
private String name;
@NotEmpty
private String role;
}
role
サービス層
role
が実装によって設定され、repo
が春データMongoRepository
で永続化層
@Service
public class UserService {
@Autowired
private UserRepo repo;
private User createAppUser(User u) {
u.setRole("APP_USER");
return repo.save(u);
}
}
によって必要とされる
@RestController
public class RegisterController {
@Autowired
private UserService service;
@PostMapping
public User register(@Valid User u) {
return service.createAppUser(u);
}
}
ここに存在していません。
私はこの問題を解決する二つのアプローチを考えることができます:RESTのAPI層
- 。彼らは定型の多くを必要とし、これは些細な場合のように、私はあまり好きではありませんどちらも、宣言だけでは何も
を - 春Validator
または何か他のものを使用して、問題ではないありませんか。
使用の検証グループ。グループに適用する注釈を指定し、異なるレベルでは検証するグループを指定します。 –