Eu entendo que são classes para configurar nosso projeto, mas quais são especificamente suas funções e como essas duas classes se diferenciam uma da outra?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu entendo que são classes para configurar nosso projeto, mas quais são especificamente suas funções e como essas duas classes se diferenciam uma da outra?
E aí, Rodrigo! Tudo certo, cara? =D
Não sou um expert em Spring, mas vamos lá...
Ambas as classes, como você mesmo mencionou, são para configurar o projeto. Agora... O que cada uma faz?!
A primeira, ServletSpringMvc representa a Servlet do Spring MVC. Em algum momento você precisa fazer o mapeamento dessa classe, e é examente isso que você está fazendo no método getServletMappings()... Repare que você está dizendo que toda requisição começando com / será enviada à essa classe! Sacou até aqui? Se você já fez configuração de Servlet com .xml, acredito que esse método possa ser comparado ao <servlet-mapping>. =D
Já a outra classe, AppWebConfiguration é a responsável por substituir o <mvc:component-scan base-package="...">... Essa tag é a responsável por dizer ao Spring onde procurar pelas nossas classes. =)
Conseguiu entender? Espero que tenha conseguido ajudá-lo, mas qualquer dúvida não hesite em perguntar por aqui, no fórum, para que possamos continuar ajudando-o! Beleza? =D
Abraço e bons estudos,
Fábio