私はあなたの助けが必要です!サービス検証:検証が失敗した場合は例外をスローします
私のWebプロジェクト(Spring MVCに基づいています)では、いくつかの検証が失敗したことを示すために例外を使用していますが、正しいことをしているかどうかはわかりません。私はこの1つarticleを読んだ
@Service
@Transactional
public class UserService {
@Autowired
private UserRepository userRepository;
public User createUser(UserDTO userDTO) throws IllegalArgumentExceptio {
validateUserEmail(userDTO);
return userRepository.save(new User(userDTO.getFirstName(), userDTO.getLastName(), userDTO.getEmail(), userDTO.getPassword()));
}
private void validateUserEmail(UserDTO userDTO) throws IllegalArgumentException {
String emailPattern = "^[a-z0-9-\\+]+(\\.[a-z0-9-]+)*@"
+ "[a-z0-9-]+(\\.[a-z0-9]+)*(\\.[a-z]{2,})$";
if (userDTO() == null) {
throw new IllegalArgumentException(INVALID_EMAIL_NULL.getMessage());
} else if (userDTO().length() > 25) {
throw new IllegalArgumentException(INVALID_EMAIL_LENGTH.getMessage());
} else if (!userDTO().matches(emailPattern)) {
throw new IllegalArgumentException(INVALID_EMAIL_FORMAT.getMessage());
}
}
}
:たとえば
iは、このようなサービスを提供しています。また、Hibernate Validatorを使用する方法もあります。
したがって、主な質問は、どちらのアプローチがベストプラクティスであり、なぜですか?
- 私はそうであるように検証中に例外をスローします。
- notification patternのようなものを使用してください。
- Hibernate Validatorを使用してください。
私の答えは助けましたか? – developer
@ javaguyはい、それは私を助けました。ありがとう – TimurJD