每次点击数据库中的数据不是从缓存中获取的

时间:2017-07-12 06:20:01

标签: spring-mvc spring-boot ehcache spring-cache

这是Application.java类

@Configuration
@SpringBootApplication
//@EnableGlobalMethodSecurity(prePostEnabled=true)
@EnableTransactionManagement 
@EnableCaching
@EnableJpaRepositories(basePackages="om.gov.moh.irs.dao.repos",repositoryImplementationPostfix="CustomImpl")
public class Application extends SpringBootServletInitializer {

    @Autowired
    Environment env;

    @Bean
    @ConfigurationProperties("spring.datasource")
    public ComboPooledDataSource dataSource() {
        return new ComboPooledDataSource();
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public ResourceBundleMessageSource messageSource() {
        ResourceBundleMessageSource source = new ResourceBundleMessageSource();
        source.setBasenames("messages"); // name of the resource bundle
        source.setUseCodeAsDefaultMessage(true);
        return source;
    }

    @Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setMaxFileSize(env.getProperty("multipart.maxFileSize"));
        factory.setMaxRequestSize(env.getProperty("multipart.maxRequestSize"));
        return factory.createMultipartConfig();
    }

}

这是我试图缓存的dto类。

public class PaginationDto  implements Serializable {
    private static final long serialVersionUID = 1L;

    public Integer totalRecords;

    public List<?> paginatedList;

    //constructor and getter setter here
}

控制器类

@RequestMapping(value="categories", method=RequestMethod.POST, produces = { "application/json" })
    public @ResponseBody ResultDecorator searchCategories(@RequestBody CategoryDto categoryDto) int pageSize, @RequestParam("sort") String sortOrder) throws BusinessException{
                return handler.resolveResult(categoryService.searchCategory(categoryDto), OperationEnum.SEARCH);
    }

定义了@cacheable的服务类。

@Override
    @Cacheable("category")
    public PaginationDto searchCategory(CategoryDto categoryDto) throws CategoryException {
        System.out.println("@@@@@@@category");
        PaginationDto paginationDtoResponse = null;         
        paginationDtoResponse = categoryRepoCustom.fetchCategories(categoryDto);                    
        return paginationDtoResponse;
    }

Defined ehcache.xml file



<?xml version="1.0" encoding="UTF-8"?>
    <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.ehcache.org/ehcache.xsd"
         updateCheck="true" monitoring="autodetect" dynamicConfig="true">



     <cache name="category"
           maxElementsInMemory="100" eternal="false"
           overflowToDisk="false"
           timeToLiveSeconds="30000" timeToIdleSeconds="0"
           memoryStoreEvictionPolicy="LFU" transactionalMode="off">
    </cache>
</ehcache>

每次打开控制台日志时都会点击此http://localhost:9190/isa/categories,这意味着数据不会从缓存中获取。

0 个答案:

没有答案