Mesmo após adicionar as dependências e configurar o cache do guava como mostrado durante as aulas, o cache aparenta não estar funcionando. Cada vez que a página é recarregada é disparada uma nova query buscando os produtos no console. Não acontece nenhum erro, o cache apenas não funciona. Como devo prosseguir? Minhas classes:
HomeController
@Controller
public class HomeController {
@Autowired
private ProdutoDAO produtoDao;
@RequestMapping("/")
@Cacheable(value="produtosHome")
private ModelAndView index() {
ModelAndView modelAndView = new ModelAndView("home");
List<Produto> produtos = produtoDao.listar();
modelAndView.addObject("produtos", produtos);
return modelAndView;
}
}
AppWebConfiguration
@EnableWebMvc
@ComponentScan(basePackageClasses = {HomeController.class, ProdutoDAO.class, FileSaver.class, CarrinhoCompras.class})
@EnableCaching
public class AppWebConfiguration {
@Bean
public InternalResourceViewResolver internalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposedContextBeanNames("carrinhoCompras");
return resolver;
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(1);
return messageSource;
}
@Bean
public FormattingConversionService mvcConversionService() {
DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService();
DateFormatterRegistrar registrar = new DateFormatterRegistrar();
registrar.setFormatter(new DateFormatter("dd/MM/yyyy"));
registrar.registerFormatters(conversionService);
return conversionService;
}
@Bean
public MultipartResolver multipartResolver() {
return new StandardServletMultipartResolver();
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
@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;
}
}