No curso a validação é feita implementando uma Interface do Spring "Validator" . Usando também o método:
    @InitBinder
    public void InitBinder(WebDataBinder binder) {
        binder.addValidators(new ProdutoValidation());
    }Utilizando somente o método abaixo a validação é feita nas anotações da classe que vai ser persistida no banco, neste caso "Produto". Por exemplo: @NotNull.
Qual o motivo de fazer a validação utilizando a Interface Validator com esse InitBinder?
@RequestMapping(method = RequestMethod.POST)
    public ModelAndView grava(@Valid Produto produto, BindingResult bindingResult, RedirectAttributes redirectAttributes) {
        if(bindingResult.hasErrors()) {
            return form();
        }
        produtoDAO.gravar(produto);
        redirectAttributes.addFlashAttribute("sucesso","Produto cadastrado com sucesso!");
        return new ModelAndView("redirect:produtos");
    } 
            