12.6. 예제
다음 주석이 있는 Java 빈이 있다고 가정합니다.
Car.java
사용자 정의 검증 그룹에 대한 인터페이스 정의
OptionalChecks.java
public interface OptionalChecks { }
public interface OptionalChecks {
}
다음 Camel 경로에서는 제조업체 및 라이센스Plate 속성에 대한 @NotNull 제약 조건만 검증됩니다(기본 그룹 javax.validation.groups.Default
사용).
from("direct:start") .to("bean-validator://x") .to("mock:end")
from("direct:start")
.to("bean-validator://x")
.to("mock:end")
OptionalChecks
그룹에서 제약 조건을 확인하려면 다음과 같이 경로를 정의해야 합니다.
from("direct:start") .to("bean-validator://x?group=OptionalChecks") .to("mock:end")
from("direct:start")
.to("bean-validator://x?group=OptionalChecks")
.to("mock:end")
두 그룹의 제약 조건을 확인하려면 먼저 새 인터페이스를 정의해야 합니다.
AllChecks.java
@GroupSequence({Default.class, OptionalChecks.class}) public interface AllChecks { }
@GroupSequence({Default.class, OptionalChecks.class})
public interface AllChecks {
}
그런 다음 경로 정의가 다음과 같이 표시됩니다.
from("direct:start") .to("bean-validator://x?group=AllChecks") .to("mock:end")
from("direct:start")
.to("bean-validator://x?group=AllChecks")
.to("mock:end")
그리고 자체 메시지 인터폴레이터, 트래버스 가능한 해결자 및 제약 조건 검증기 팩토리를 제공해야 하는 경우 다음과 같은 경로를 작성해야 합니다.
<bean id="myMessageInterpolator" class="my.ConstraintValidatorFactory" /> <bean id="myTraversableResolver" class="my.TraversableResolver" /> <bean id="myConstraintValidatorFactory" class="my.ConstraintValidatorFactory" />
<bean id="myMessageInterpolator" class="my.ConstraintValidatorFactory" />
<bean id="myTraversableResolver" class="my.TraversableResolver" />
<bean id="myConstraintValidatorFactory" class="my.ConstraintValidatorFactory" />
from("direct:start") .to("bean-validator://x?group=AllChecks&messageInterpolator=#myMessageInterpolator &traversableResolver=#myTraversableResolver&constraintValidatorFactory=#myConstraintValidatorFactory") .to("mock:end")
from("direct:start")
.to("bean-validator://x?group=AllChecks&messageInterpolator=#myMessageInterpolator
&traversableResolver=#myTraversableResolver&constraintValidatorFactory=#myConstraintValidatorFactory")
.to("mock:end")
또한 제약 조건을 Java 주석이 아닌 XML로 설명할 수 있습니다. 이 경우 다음과 같이 META-INF/validation.xml
파일을 제공해야 합니다.
validation.xml
constraints-car.xml
파일
constraints-car.xml
OrderedChecks 에 대한 예제 경로 정의의 XML 구문은 다음과 같습니다.
본문에는 검증할 클래스의 인스턴스가 포함되어야 합니다.