Google の Preconditions クラスを使用して、ユーザーの入力データを検証しています。
しかし、Preconditions クラスを使用してユーザーの入力データをチェックする最適なポイントがどこにあるのかが気になります。
まず、以下のようにコントローラーに検証チェックコードを書きました。
@Controller
...
public void register(ProductInfo data) {
Preconditions.checkArgument(StringUtils.hasText(data.getName()),
"Empty name parameter.");
productService.register(data);
}
@Service
...
public void register(ProductInfo data) {
productDao.register(data);
}
register
しかし、サービスレイヤーのメソッドは、以下のような別のコントローラーメソッドを使用すると 思いました:
@Controller
...
public void register(ProductInfo data) {
productService.register(data);
}
public void anotherRegister(ProductInfo data) {
productService.register(data);
}
@Service
...
public void register(ProductInfo data) {
Preconditions.checkArgument(StringUtils.hasText(data.getName()),
"Empty name parameter.");
productDao.register(data);
}
一方、サービスレイヤーの方法は、1つのコントローラーでのみ使用されます。
私は混乱していました。コントローラーまたはサービスの前提条件を確認するより良い方法はどれですか?
前もって感謝します。