美文网首页
ehcache在SpringBoot中的配置过程

ehcache在SpringBoot中的配置过程

作者: 佚可 | 来源:发表于2017-04-21 15:38 被阅读0次

    1、pom依赖配置

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-cache</artifactId>
            </dependency>
            <dependency>
                <groupId>net.sf.ehcache</groupId>
                <artifactId>ehcache</artifactId>
            </dependency>
    

    2、ehcache配置文件(src/main/resources资源目录下)

    <?xml version="1.0" encoding="UTF-8"?>
    <ehcache 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
        updateCheck="false">
        <!-- 磁盘缓存位置 -->
        <diskStore path="java.io.tmpdir/ehcache"/>
        <!-- 默认缓存 -->
        <defaultCache
            maxElementsInMemory="10000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            overflowToDisk="true"
            maxElementsOnDisk="10000000"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU"
            />
        <!-- 定义缓存 -->
        <cache name="table1Cache"
            maxElementsInMemory="1000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            overflowToDisk="false"
            memoryStoreEvictionPolicy="LRU"/>
    </ehcache> 
    

    3、ehcache配置类(@Configuration)

    @Configuration
    @EnableCaching // 标注启动缓存
    public class CacheConfiguration {
        /**
         * Logger for this class
         */
        private static final Logger logger = Logger.getLogger(CacheConfiguration.class);
    
    
        /**
         * ehcache 主要的管理器
         * @param bean
         * @return
         */
        @Bean
        public EhCacheCacheManager ehCacheCacheManager(EhCacheManagerFactoryBean bean){
            logger.warn("初始化EhCacheCacheManager");
            return new EhCacheCacheManager(bean.getObject());
        }
    
    
        @Bean
        public EhCacheManagerFactoryBean ehCacheManagerFactoryBean(){
            logger.warn("初始化EhCacheManagerFactoryBean");
            EhCacheManagerFactoryBean factoryBean = new EhCacheManagerFactoryBean();
    
            factoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
            factoryBean.setShared(true);
    
            return factoryBean;
        }
    }
    

    4、ehcache注解使用

    在service接口方法上进行缓存标注

    /**
         * 重工业工业增加值占比(%)历史月份
         * 
         * @param startMonth
         * @param endMonth
         * @return
         */
        @Cacheable(value="table1Cache") // value为已定义缓存的名字
        List<JsonSetBean> indIncPercentageHistData(String startMonth, String endMonth);
    

    5、缓存测试

    测试@Cacheable标注的接口,第一次执行了Dao层查询,往后的调用没有执行Dao层,此时说明ehcache已经工作了

    相关文章

      网友评论

          本文标题:ehcache在SpringBoot中的配置过程

          本文链接:https://www.haomeiwen.com/subject/yumdzttx.html