Oi pessoal, tudo certo?
Só para lembrar que ainda estou com aquela dúvida de como fazer para mapear aquela url composta tal como /produtos/form. Quando mapeio deste jeito, o spring não consegue retornar o recurso de view jsp que está dentro da pasta WEB-INF/views/produtos/form.jsp. Vou postar aqui meus arquivos de configuração do spring, bem como o ProdutosController. 
Vocês podem notar que tive que mapear o ProdutosController de forma diferente da que estava no curso. Mas gostaria de auxílio para poder mapear como está no curso.
Abraços.
Segue implementação:
Esse é o ServletSpringMvc
package br.com.casadocodigo.loja.conf;
import javax.servlet.Filter;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class ServletSpringMvc extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return null;
    }
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] { AppWebConfiguration.class, JpaConfiguration.class };
    }
    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter("UTF-8");
        return new Filter[] { encodingFilter };
    }
}
Agora, segue o AppWebConfiguration
package br.com.casadocodigo.loja.conf;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import br.com.casadocodigo.loja.controllers.HomeController;
import br.com.casadocodigo.loja.dao.ProdutoDao;
@EnableWebMvc
@ComponentScan(basePackageClasses = { HomeController.class, ProdutoDao.class })
public class AppWebConfiguration {
    @Bean
    public InternalResourceViewResolver getResolver() {
        return new InternalResourceViewResolver("WEB-INF/views/", ".jsp");
    }
}
Agora, segue o ProdutosController
package br.com.casadocodigo.loja.controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import br.com.casadocodigo.loja.dao.ProdutoDao;
import br.com.casadocodigo.loja.modelo.Produto;
import br.com.casadocodigo.loja.modelo.TipoPreco;
@Controller
public class ProdutosController {
    @Autowired
    private ProdutoDao dao;
    @RequestMapping("/form")
    public ModelAndView form() {
        System.out.println("Entrando no formulário de cadastro de livros");
        ModelAndView modelAndView = new ModelAndView("produtos/form");
        modelAndView.addObject("tipos", TipoPreco.values());
        return modelAndView;
    }
    @RequestMapping(value = "/produtos", method = RequestMethod.POST)
    public String grava(Produto produto) {
        System.out.println(produto);
        dao.gravar(produto);
        return "produtos/ok";
    }
    @RequestMapping(value = "/produtos", method = RequestMethod.GET)
    public ModelAndView listar() {
        ModelAndView modelAndView = new ModelAndView("produtos/lista");
        List<Produto> produtos = dao.listar();
        modelAndView.addObject("produtos", produtos);
        return modelAndView;
    }
}