Spring MVC аннотация валидатора + пользовательская проверка

Я работаю над приложением Spring MVC, где я должен применить валидацию на основе валидатора Spring MVC. Я первый шаг для этого я добавил аннотацию для класса и настройки контроллера, и она отлично работает. И теперь мне нужно реализовать собственный валидатор для выполнения сложной логики, но я хочу использовать существующую аннотацию и просто добавить дополнительную проверку.

Мой класс пользователя:

public class User
{
    @NotEmpty
    private String name;

    @NotEmpty
    private String login; // should be unique
}

Мой валидатор:

@Component
public class UserValidator implements Validator
{

    @Autowired
    private UserDAO userDAO;

    @Override
    public boolean supports(Class<?> clazz)
    {
        return User.class.equals(clazz) || UsersForm.class.equals(clazz);
    }

    @Override
    public void validate(Object target, Errors errors)
    {
        /*
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "NotEmpty.user");
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "login", "NotEmpty.user");
        */
        User user = (User) target;
        if (userDAO.getUserByLogin(user.getLogin()) != null) {
            errors.rejectValue("login", "NonUniq.user");
        }
    }
}

Мой контроллер:

@Controller
public class UserController
{
    @Autowired
    private UserValidator validator;

    @InitBinder
    protected void initBinder(final WebDataBinder binder)
    {
        binder.setValidator(validator);
    }

    @RequestMapping(value = "/save")
    public ModelAndView save(@Valid @ModelAttribute("user") final User user,
            BindingResult result) throws Exception
    {
        if (result.hasErrors())
        {
            // handle error
        } else
        {
            //save user
        }
    }
}

Итак, возможно ли использовать пользовательский валидатор и аннотацию вместе? И если да, то как?

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

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