에 다른 레이어에 대한 검증 주석 여러 계층 (REST, 서비스, 지속성)에 대한 요청을 나타냅니다.봄 (부팅) <em>봄 부팅</em>, <em>봄</em> MVC와 <em>봄 데이터</em>와 하나 개의 클래스 (<em>MongoDB를 데이터베이스로</em>으로) 사용과 웹 응용 프로그램을 감안할 때 같은 클래스
일부 클래스가 특정 레이어에만 적용되거나 일부 클래스에서 무시되는 것처럼 클래스의 필드에 대한 유효성 검증 제한 조건을 선언적으로 지정할 수 있습니까?
예 :
@NotEmpty
엔티티가 말뭉치 주석
REST의 API 계층
JSR 303 이다 (getter 및 setter 생성됨)
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를 층
- 수동/절차 확인을 위해 DTO 객체를 소개를; 그들은 보일러의 많이 필요하고이 사소한 경우와 같이 내가 아주 많이 좋아하지 않아 둘
선언 단순히 아무것도 - 중 스프링을 사용하여Validator
또는 뭔가 다른, 중요하지 않습니다.
를 사용하여 유효성 검사 그룹. 해당 그룹이 적용되는 주석에서 지정하고 다른 레벨에서 유효성을 검증하려는 그룹을 지정하십시오. –