65.2. Cryostat 유효성 검사를 사용하여 서비스 개발
65.2.1. 서비스 주석 처리 링크 복사링크가 클립보드에 복사되었습니다!
65.2.1.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
Quarkus 유효성 검사를 사용하여 서비스를 개발하는 첫 번째 단계는 관련 검증 주석을 서비스를 나타내는 Java 클래스 또는 인터페이스에 적용하는 것입니다. 검증 주석을 사용하면 서비스가 호출될 때마다 런타임 시 확인되는 메서드 매개변수, 반환 값 및 클래스 필드에 제약 조건을 적용할 수 있습니다.
65.2.1.2. 간단한 입력 매개변수 검증 링크 복사링크가 클립보드에 복사되었습니다!
매개 변수가 간단한 Java 유형인 서비스 메서드의 매개 변수의 유효성을 검사하려면 빈 유효성 검사 API(javax.validation.constraints
패키지)의 제약 조건 주석을 적용할 수 있습니다. 예를 들어 다음 코드 예제에서는 null 속성에 대한 두 매개변수(@NotNull
주석), id
문자열이 \\d+
정규식(@Pattern
주석)과 일치하는지 여부와 이름
문자열의 길이가 1에서 50 사이의 범위에 있는지 여부를 테스트합니다.
65.2.1.3. 복잡한 입력 매개변수 검증 링크 복사링크가 클립보드에 복사되었습니다!
복잡한 입력 매개변수(오브젝트 인스턴스)를 검증하려면 다음 예와 같이 @Valid
주석을 매개변수에 적용합니다.
@Valid
주석은 자체적으로 제약 조건을 지정하지 않습니다. @Valid
를 사용하여 Book 매개 변수에 주석을 달 때 유효성 검사 엔진에서 Book
클래스의 정의 내에서 확인하도록 효과적으로 지시하여 유효성 검사 제약 조건을 찾도록 지시합니다. 이 예제에서 Book
클래스는 다음과 같이 id
및 name
필드에 대한 검증 제약 조건으로 정의됩니다.
65.2.1.4. 반환 값 검증 (non-Response) 링크 복사링크가 클립보드에 복사되었습니다!
일반 메서드 반환 값(non-Response)에 검증을 적용하려면 메서드 서명 앞에 주석을 추가합니다. 예를 들어 반환 값(@NotNull
주석)을 테스트하고 검증 제약 조건을 재귀적으로 테스트하려면 다음과 같이 get
RoleBinding 메서드에 주석을 답니다.
65.2.1.5. 반환 값 검증(응답) 링크 복사링크가 클립보드에 복사되었습니다!
javax.ws.rs.core.Response
오브젝트를 반환하는 메서드에 검증을 적용하려면 응답하지 않는 경우와 동일한 주석을 사용할 수 있습니다. 예를 들면 다음과 같습니다.
65.2.2. 표준 주석 링크 복사링크가 클립보드에 복사되었습니다!
65.2.2.1. Cryostat 검증 제약 조건 링크 복사링크가 클립보드에 복사되었습니다!
표 65.1. “Cryostat 유효성 검사를 위한 표준 주석” 은 fields 및 method return values 및 parameters에 대한 제약 조건을 정의하는 데 사용할 수 있는 Cryostat Validation 사양에 정의된 표준 주석을 표시합니다(클래스 수준에서 표준 주석 중 하나가 적용될 수 있음).
주석 | 적용 가능 | 설명 |
---|---|---|
|
|
주석이 달린 요소가 |
|
|
주석이 달린 요소가 |
|
|
|
|
|
|
|
|
주석이 있는 값이 |
|
| 주석이 달린 날짜가 나중에 있는지 확인합니다. |
|
| 주석이 지정된 최대값보다 작거나 같은지 확인합니다. |
|
| 주석이 지정된 최소값보다 크거나 같은지 확인합니다. |
| 모든 유형 |
주석이 달린 값이 |
| 모든 유형 |
주석이 달린 값이 |
|
| 주석이 지정된 날짜가 과거인지 확인합니다. |
|
|
지정된 플래그가 일치하도록 주석이 달린 문자열이 정규식 |
|
|
주석이 있는 컬렉션, 맵 또는 배열의 크기가 |
| primitive가 아닌 유형 | 주석이 있는 오브젝트에서 재귀적으로 검증을 수행합니다. 개체가 컬렉션 또는 배열인 경우 요소를 재귀적으로 검증합니다. 오브젝트가 맵이면 값 요소의 유효성이 재귀적으로 검증됩니다. |
65.2.3. 사용자 정의 주석 링크 복사링크가 클립보드에 복사되었습니다!
65.2.3.1. Hibernate에서 사용자 정의 제약 조건 정의 링크 복사링크가 클립보드에 복사되었습니다!
8080 검증 API를 사용하여 고유한 사용자 지정 제한 조건 주석을 정의할 수 있습니다. Hibernate 검증기 구현에서 이 작업을 수행하는 방법에 대한 자세한 내용은 Hibernate Validator 참조 가이드의 사용자 지정 제한 조건 생성 장을 참조하십시오.