`

pringboot2.0+ehcache

阅读更多

 

 springboot支持多种缓存框架,这里我用到的是springboot默认支持的环境ehcache,ehcache小巧使用简单,因此我在这里介绍一下springboot如何集成ehcache。

了解springcloud架构可以加求求:三五三六二四七二五九

1.pom.xml引入相关jar包

<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.xml文件放到application.properties同目录下即可

<ehcache
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
        xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd&quot;
        updateCheck="false">
    <!—缓存路径,用户目录下的base_ehcache目录—>
    <diskStore path="user.home/base_ehcache"/>

    <defaultCache
            maxElementsInMemory="20000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            overflowToDisk="true"
            maxElementsOnDisk="10000000"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU"/>
    <!—缓存文件名:cache_user,同样的可以配置多个缓存—>
    <cache name="cache_user"
           maxElementsInMemory="20000"
           eternal="true"
           overflowToDisk="true"
           diskPersistent="false"
           timeToLiveSeconds="0"
           diskExpiryThreadIntervalSeconds="120"/>
           <!— eternal:true表示对象永不过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds属性,默认为false —>
<!— maxEntriesLocalHeap:堆内存中最大缓存对象数,0没有限制 —>

<!— timeToIdleSeconds: 设定允许对象处于空闲状态的最长时间,以秒为单位。
当对象自从最近一次被访问后,如果处于空闲状态的时间超过了timeToIdleSeconds属性值,这个对象就会过期,EHCache将把它从缓存中清空。
只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示对象可以无限期地处于空闲状态 —>
</ehcache>

 

3.加入application.properties配置

spring.cache.ehcache.config=classpath:/ehcache.xml
spring.cache.type=ehcache

 

4.使用

我用在service层中

@Service
@Transactional//事务
@CacheConfig(cacheNames = {"cache_user"})//缓存命名空间,存储在哪个缓存中
public class SysManageService implements ISysManageService {

    @Override
    @CacheEvict(cacheNames = "cache_user",allEntries=true)
    public void delSysConfig(String id) {
        。。。
    }
    @Override
    @CacheEvict(cacheNames = "cache_user",allEntries=true)
    public void updateSysConfig(SysConfig sc) {
        。。。
    }
    @Override
    @Cacheable(cacheNames="cache_user",sync = true)
    public SysConfig getSysConfigById(String id) {
        。。。
    }
}

 简单的介绍

1.@EnableCaching 启用缓存配置

2.@Cacheable 指定某个方法的返回值是可以缓存的。在注解属性中指定缓存规则。

参数:value、cacheNames:两个等同的参数

key:#p0表示第一个参数(第一个参数是对象的话可以调用对象的属性如#p0.id),或者用#+第一个参数名与#p0等同,要使用SpEL表达式#fx.id

condition:condition=”#name.length() < 32”

unless=”#result.hardback”

3.@Cacheput 将方法的返回值缓存到指定的key中;

例子:@CachePut(value=”cache_user”,key=”#p0.id”)//也可以用#object.id

4.@CacheEvict 删除指定的缓存数据

参数:与@cacheable相同,多出2个参数:

allEntries:非必需,默认为false。当为true时,会移除所有数据

beforeInvocation:非必需,默认为false,会在调用方法之后移除数据。当为true时,会在调用

例子:@CacheEvict(cacheNames = “cache_user”,key=”#id” ,allEntries=true)

5.@Cacheable和@Cacheput都会将方法的执行结果按指定的key放到缓存中,

6.@Cacheable在执行时,会先检测缓存中是否有数据存在,如果有,直接从缓存中读取。如果没有执行方法,将返回值放入缓存,而@Cacheput会先执行方法,然后再将执行结果写入缓存。而使用@Cacheput的方法则一定会执行。

 

至此springboot2.0集成ehcache就完成了,使用缓存存储常用的使用频繁的查询信息,可以提高效率,降低服务器与数据库的压力。

 

 

 

分享到:
评论

相关推荐

    基于SpringBoot2.0 + Spring Data Jpa + Thymeleaf + Shiro 开发的后台管理系统

    TIMO后台管理系统,基于SpringBoot2.0 + Spring Data Jpa + Thymeleaf + Shiro 开发的后台管理系统,采用分模块的方式便于开发和维护,支持前后台模块分别部署,目前支持的功能有:权限管理、部门管理、字典管理、...

    Spring+EhCache实例源码

    Spring+EhCache实例源码,本实例的环境 eclipse + maven + spring + ehcache + junit,实例详解请访问博主博客:http://blog.csdn.net/u013142781

    spring + ehcache + redis两级缓存

    当我们谈论“Spring + Ehcache + Redis”两级缓存时,我们实际上是在讨论如何在Java环境中利用Spring框架来集成Ehcache作为本地缓存,并利用Redis作为分布式二级缓存,构建一个高效且可扩展的缓存解决方案。...

    spring+ehcache+mabatis

    spring+ehcache+mabatis。测试用例用的是mysql,数据库的配置在jdbc.properties里面。所要的sql在src/main/resources下的student.sql。测试的话调用controller下的update和getOne那两个接口测试。

    开源测试项目:spring mvc+springsecurity3+ehcache+bootstrap+mysql

    开源测试项目:spring mvc+springsecurity3+ehcache+bootstrap+mysql 内附MySQL表,直接导入就可运行 效果图请移步:http://blog.csdn.net/yangxuan0261/article/details/10053947

    Spring MVC+Mybatis+Ehcache+Apache Shiro+Bootstrap整合开发java仓库管理系统源码

    积分最低,Spring MVC+Mybatis+Ehcache+Apache Shiro+Bootstrap整合开发java仓库管理系统源码 开发环境:Eclipse ,JDK 1.8 ,Tomcat7 技术选型 后端技术 SpringMVC MVC框架 Spring Framework 容器 Apache ...

    springMVC+mybatis+ehcache整合

    SpringMVC、MyBatis和Ehcache的整合提供了一种优秀的解决方案,这三种技术分别处理了不同的层面:SpringMVC作为MVC框架负责控制层,MyBatis作为持久层框架简化了数据库操作,而Ehcache则作为缓存系统提高了数据访问...

    springMvc+spring+mybatis+shiro+redis+ehcache后台管理系统.zip

    本后台管理系统,采用流行的框架springMvc+spring+mybatis+shiro+redis+ehcache开发,实现了权限管理(菜单权限、数据权限),solr全文搜索引擎,activiti工作流程引擎,cas单点登陆等功能,完善的代码生成器 后期还...

    spring boot 使用jsp 集成hibernate+shiro+ehcache项目分享

    【Spring Boot 使用 JSP 集成 Hibernate+Shiro+Ehcache 项目详解】 Spring Boot 是一个基于 Spring 框架的高度集成了多种技术的开发工具,它简化了配置过程,使得开发人员能够快速构建可运行的应用程序。在这个项目...

    spring+ehcache示例整合Demo

    Spring 和 Ehcache 是两个在Java开发中非常重要的框架。Spring 是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,使得应用程序的构建变得更加简洁和模块化。Ehcache...

    Hibernate+ehcache二级缓存技术

    Hibernate+ehcache二级缓存技术 Hibernate+ehcache二级缓存技术

    spring MVC+ibatis+ehcache开发包集合

    自己项目的开发包集合,其中包括:缓存处理ehcache相关jar,spring MVC4.0 jar,ehcache依赖jar,以及其他jar(图像处理thumbnailator-0.4.2),包虽然不是很新但可用。实际使用时找包较为麻烦,现在整理出来,希望...

    spring+ibatis+ehcache整合例子

    在IT行业中,Spring、iBatis和Ehcache是三个非常重要的开源框架,它们分别用于企业级应用的依赖注入、数据库操作和缓存管理。这个"spring+ibatis+ehcache整合例子"是一个完整的示例项目,展示了如何将这三个框架无缝...

    基于Spring+JPA+Velocity+Ehcache开发的商城系统源码+数据库.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等...基于Spring+JPA+Velocity+Ehcache开发的商城系统源码+数据库(结合URL重写技术静态化商城前台页面).zip

    Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程

    1.通过google ehcache-spring-annotatios.jar自动注解方式实现整合Spring+Ehcache。 2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。...

    maven整合spring+hibernate+mqsql+ehcache

    maven环境下如何整合spring+hibernate+mysql+ehcache的方法

    Spring+SpringMVC+Ehcache+Shiro+BootStrap企业级开发平台

    【B1】Spring+SpringMVC+Ehcache+Shiro+BootStrap企业级开发平台源码下载 内置功能 用户管理 角色管理 菜单管理 字典管理 部门管理 附件管理 参数管理 连接池监视 日志管理 技术选型 1、后端 核心框架...

    springboot3 + ehcache demo

    springboot3 + ehcache demo, this demo from git hub

    springMVC+MyBatis+Ehcache项目整合

    springMVC+MyBatis+Ehcache项目整合 里面有几个调用的例子 还解决一般行整合出现 MyBatis事物无法回滚问题 Ehcache 以注解的方式进行整合 项目架构一般 不喜欢别骂我 没打算收你们的积分 不要问我叫什么 大家都叫我...

    spring+ehcache demo

    【Spring + Ehcache 整合应用详解】 在Java企业级开发中,缓存技术是提高系统性能的关键之一。Spring框架提供了对多种缓存机制的支持,其中包括Ehcache。本示例"spring+ehcache demo"将带你深入理解如何在Spring...

Global site tag (gtag.js) - Google Analytics