Oi Thales
Parece alguma configuração que ficou faltando. Verifique as dependências no seu pom.xml:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
A sua classe AppWebConfiguration deve ficar conforme abaixo:
@EnableWebMvc
@EnableCaching
@ComponentScan(basePackageClasses={HomeController.class, ProdutoDAO.class,
FileSaver.class, CarrinhoCompras.class})
public class AppWebConfiguration {
@Bean
public CacheManager cacheManager() {
CacheBuilder<Object, Object> builder =
CacheBuilder.newBuilder().maximumSize(100)
.expireAfterAccess(5, TimeUnit.MINUTES);
GuavaCacheManager manager = new GuavaCacheManager();
manager.setCacheBuilder(builder);
return manager;
}
// restante do código omitido
}
O método gravar:
@RequestMapping(method=RequestMethod.POST)
@CacheEvict(value="produtosHome", allEntries=true)
public ModelAndView gravar(MultipartFile sumario, @Valid Produto produto,
BindingResult result, RedirectAttributes redirectAttributes){
if(result.hasErrors()) {
return form(produto);
}
String path = fileSaver.write("arquivos-sumario", sumario);
produto.setSumarioPath(path);
produtoDao.gravar(produto);
redirectAttributes.addFlashAttribute("sucesso", "Produto cadastrado com sucesso!");
return new ModelAndView("redirect:produtos");
}