Spring 3.1 Autowiring не работает внутри валидатора пользовательских ограничений

У меня проблема с автопроводкой bean-компонента внутри собственного валидатора ограничений. Экземпляр валидатора ограничения не предоставляется с использованием Spring 's LocalValidatorFactoryBean. Поставщик JSR-303 является hibernate-validator 4.2.0.Final.

Выдержка конфигурации Spring:



 

Валидатор пользовательских ограничений:

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

import org.springframework.beans.factory.annotation.Autowired;

import com.model.Subject;
import com.services.SomeTypeService;

public class ReadOnlyValidator implements ConstraintValidator {

@Autowired
private SomeTypeService someTypeService;

@Override
public void initialize(ReadOnly constraintAnnotation) { }

@Override
public boolean isValid(String type, ConstraintValidatorContext context) {
    try {
         if (null != type) {
                        return !someTypeService.isReadonly(type);
                     }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return false;
}
}

Аннотация:

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import javax.validation.Constraint;
import javax.validation.Payload;

@Target( { METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER } )
@Retention(RUNTIME)
@Constraint(validatedBy = ReadOnlyValidator.class)
@Documented
public @interface ReadOnly {
String message() default "{constraints.subjecttype.readonly}";
public abstract Class[] groups() default {};
public abstract Class[] payload() default {};
}

SomeService:

 @Validated
 public interface SomeService {
    ...
    public void updateType(@ReadOnly String type) throws SomeException;
    ...
 }

SomeServiceImpl:

 @Service
 public class SomeServiceImpl implements SomeService {
  ...
    public void updateType(String type) throws SomeException {
     // do something
    }
  ...
 }

SomeTypeService - это еще один аннотированный компонент @Service, который не зависит от SomeService ...

Проблема в том, что я получаю NPE, так как автопроводка не работает; кто-то еще управляет пользовательскими экземплярами валидатора, а не Spring ...

Заранее спасибо за любые советы.

Ответы на вопрос(2)

Ваш ответ на вопрос