Spring 整合Ehcache

标签: spring ehcache
2人阅读 评论(0) 收藏 举报
分类:

一、ehcache简介

       EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。具体的关于ehcache的介绍及配置教程可以网上查找,这里不再赘述。

二、引入ehcache依赖

        <dependency>
         <groupId>net.sf.ehcache</groupId>
        <artifactId>ehcache</artifactId>
            <version>2.8.2</version>
        </dependency>
三、ehcache配置

1、ehcache.xml配置

<ehcache>

    <diskStore path="java.io.tmpdir"/>

    <!--Default Cache configuration. These will applied to caches programmatically created through
       the CacheManager.

       The following attributes are required for defaultCache:

       maxInMemory       - Sets the maximum number of objects that will be created in memory
       eternal           - Sets whether elements are eternal. If eternal,  timeouts are ignored and the element
                           is never expired.
       timeToIdleSeconds - Sets the time to idle for an element before it expires. Is only used
                           if the element is not eternal. Idle time is now - last accessed time
       timeToLiveSeconds - Sets the time to live for an element before it expires. Is only used
                           if the element is not eternal. TTL is now - creation time
       overflowToDisk    - Sets whether elements can overflow to disk when the in-memory cache
                           has reached the maxInMemory limit.

       -->
    <defaultCache
            maxEntriesLocalHeap="100000"
            eternal="false"
            timeToIdleSeconds="0"
            timeToLiveSeconds="0"
            overflowToDisk="false"
    />

    <cache name="cacheTest"
           eternal="false"
           maxEntriesLocalHeap="100000"
           timeToIdleSeconds="0"
           timeToLiveSeconds="3600"
           overflowToDisk="false"
           statistics="true">
    </cache>


</ehcache>

2、在application.xml中配置

    <!--缓存配置-->
    <cache:annotation-driven cache-manager="cacheManager" />
    <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
        <property name="cacheManager" ref="ehcache"></property>
    </bean>
    <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
        <property name="configLocation" value="classpath:ehcache.xml"></property>
    </bean>

四、在Service中使用注解添加依赖。

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    @Cacheable(value = "cacheTest",key = "#id")
    public User getUserById(Long id) {
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return userMapper.selectByPrimaryKey(id);
    }
}
五、测试


可以看到第一次访问时,缓存中没有,执行Service方法,从数据库中查找,响应同时缓存到缓存,第二次执行时,直接从缓存中查找。

参考:

https://www.cnblogs.com/mxmbk/articles/5162813.html

https://blog.csdn.net/wjacketcn/article/details/50945887

查看评论

EhCache的使用及与Spring的整合

本文主要介绍EhCache的使用,以及EhCache与Spring的整合的实践经验。 EHCache API的基本用法 首先介绍CacheManager类。它主要负责读取配置文件,默认...
  • xiao_mengxi
  • xiao_mengxi
  • 2016-11-28 09:55:42
  • 882

整合之道--Spring4整合Ehcache2.10

1 写在前面的话整合思路Spring与其他框架的整合一般的思路就是将其他框架当作Spring的Bean管理起来,一般会由Spring提供该bean的基本实现,用户只需配置即可。配置中主要告诉Sprin...
  • frankcheng5143
  • frankcheng5143
  • 2016-03-01 23:33:51
  • 13383

SpringBoot整合Ehcache

前言 近段时间在做一个类似cms的项目,在做完几十万的数据导入后,发现各种查询异常缓慢,数据库(单库,暂时服务器没那么多),数据库层面的索引各种优化前期也已经做过,单笔查询0.5s左右,但架不住量...
  • u014042066
  • u014042066
  • 2017-08-07 21:17:38
  • 3239

spring+Mybatis+Ehcache整合

项目用到spring+mybatis框架,弄了一上午的spring+ehcache的整合,就是不见效果,后来发现Mybatis与Ehcache整合也需要进行配置,两个都配置会大大降低数据库压力。下面把...
  • alibert
  • alibert
  • 2016-05-23 14:19:44
  • 2794

spring boot ehcache整合

pom.xml配置 引入依赖包 org.springframework.boot spring-boot-starter-cache net.sf.ehcache ...
  • shui878412
  • shui878412
  • 2016-11-30 20:54:22
  • 2272

最近在集成springMVC+mybatis +ehcache 整合碰到了很多坑希望对想了解的同学有一定的帮助

在这里springMVC+mybatis如何集成我暂时不多说,之后有时间会更新。 集成ehcache只要分为四步:     第一步:  编写ehcache配置文件ehcache.xml 当然名字...
  • preferG
  • preferG
  • 2017-09-12 21:51:42
  • 1018

Spring Boot整合Ehcache实现缓存功能

这里介绍Spring Boot结合JPA,MySQL和Ehcache实现缓存功能,提高程序访问效率。一、Maven依赖主要依赖如下所示: ...
  • Lammonpeter
  • Lammonpeter
  • 2017-11-22 13:52:22
  • 912

Spring MVC学习总结(7)——Spring MVC整合Ehcache缓存框架

Ehcache算是当前比较流行的缓存框架,使用缓存可以极大的缓解服务器和数据库的压力,提高访问效率,提高服务器的并发能力。接下来我们看怎么把缓存使用起来。 SpringMVC集成Ehcach...
  • u012562943
  • u012562943
  • 2016-08-23 11:30:34
  • 2937

ehcache + spring+mybatis整合

一、 Mybatis+Ehcache配置     为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提...
  • u013378306
  • u013378306
  • 2016-03-29 21:45:27
  • 2289

spring+hibernate整合ehcache

1.使用ehcache来提高系统的性能,现在用的非常多, 也支持分布式的缓存,在hibernate当中作为二级缓存的实现产品,可以提高查询性能。 2.在之前的struts2.12+Spring3...
  • dac55300424
  • dac55300424
  • 2014-03-04 14:06:06
  • 2126
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 981
    排名: 5万+
    联系方式
    手机 : 13373927673
    邮箱 : 1024445364@qq.com
    文章存档
    最新评论