2013-03-27 1 views
0

"유효한 XIFF 서비스 Y가 Z를 반환합니다"형식의 비즈니스 유효성 검사 논리를 가지고 있는데, 여기서 X와 Z는 컴파일 타임에 알려져 있고 Y의 위치는 Spring 구성에서로드됩니다 파일.런타임 최대 절전 모드 유효성 검사 주석 구성

내가 함께 봄 설정으로, JSR-303 주석 기반의 유효성 검사를 사용하고 싶습니다, 그래서 나는 다음과 같은 코드를 작성할 수 있습니다

사용자 정의 클래스 수준의 제약 주석 :

@MyValidation 
public class X { .... } 

@MyValidation에 대한 ConstraintValidator :

public class MyValidationValidator implements ConstraintValidator<MyValidation, X> { 
    private MyService service; 
    public MyService getService() { return service; } 
    public void setService(MyService serv) { this.service = serv; } 
    //Validation Logic... 
} 

봄 설정 :

<bean id="ServiceY" class="..."> 
    ... 
</bean> 
<bean id="mvv" class="MyValidationValidator"> 
    <property name="service" value="ServiceY" /> 
</bean> 

그러나 유효성 검사기의 속성이 설정되지 않아서 이러한 방식으로 결합하려는 시도가 실패했습니다.

지금 당장 스프링 AOP 인터셉터를 사용하여 해결 방법을 사용하고 있지만 이는 이상적이지 않습니다.

다른 질문 중 하나는 나를 속성 파일/속성을 사용하여 생각하게 만들었지 만 서비스 구성을 반복해야하지 않을까요?

프로그래밍 방식으로 제약 조건 매핑을 정의한 다른 언급이 있지만 필자가이를 수행하고 있다면 필자의 대안을 사용하는 것이 좋습니다.

동적 구성을 수행하는 방법에 대한 단서가 있습니까?

<bean id="validator" 
    class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/> 

그 방법이 내부적으로 생성 된 검증 인스턴스에 대한 의존성 주입을 수행하는 ConstraintValidatorFactory 구현을 사용 설정 발리 데이터, 단지 service 표시 :

답변

0

당신은 콩 유효성 검증을 설정하는 봄의 LocalValidatorFactoryBean를 사용한다 입력란에 @Inject 또는 @Autowired을 입력하십시오. 제약 조건 검사기 자체를 스프링 빈으로 설정하지 않아도된다는 점에 유의하십시오.

자세한 내용은 reference guide을 참조하십시오.