博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot 集成ehcache
阅读量:5036 次
发布时间:2019-06-12

本文共 4406 字,大约阅读时间需要 14 分钟。

1, 项目实在springboot 集成mybatis 的基础上的:

2,pom 如下,有的不需要加,只需要加下ehcache 相关就行

org.springframework.boot
spring-boot-starter-parent
2.0.0.RELEASE
org.projectlombok
lombok
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
org.apache.tomcat.embed
tomcat-embed-jasper
org.springframework.boot
spring-boot-starter-log4j
1.3.8.RELEASE
org.springframework.boot
spring-boot-starter-aop
commons-lang
commons-lang
2.6
org.apache.httpcomponents
httpclient
com.alibaba
fastjson
1.2.47
javax.servlet
jstl
taglibs
standard
1.1.2
org.springframework.boot
spring-boot-starter-cache
net.sf.ehcache
ehcache
2.9.1
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.1.1
mysql
mysql-connector-java

 3,需要缓存的方法上加上注解

@Cacheable 在类上给缓存加上名字
@CacheConfig(cacheNames = "userCache")
package com.aiyuesheng.mapper;import org.springframework.cache.annotation.CacheConfig;import org.springframework.cache.annotation.Cacheable;import com.aiyuesheng.entity.User;@CacheConfig(cacheNames = "userCache")public interface UserMapperdb {    void insertUser(User user);    @Cacheable    User selectUserById(int id);}

4,启动类上加上读取缓存

@EnableCaching@MapperScan("com.aiyuesheng.mapper")@SpringBootApplicationpublic class App {    public static void main(String[] args) {        SpringApplication.run(App.class, args);    }}

5,设置了缓存的名字userCache,那么这个缓存的参数在哪里?

  在配置文件:ehcache.xml

6,在application.yml 定义去读取这个文件

#单数据源spring:   datasource:     url: jdbc:mysql://127.0.0.1:3306/testdb     username: root     password: 123456     driver-class-name: com.mysql.jdbc.Driver     mybatis:  mapper-locations: classpath:com/aiyuesheng/mapping/*Mapper.xml  type-aliases-package: com.aiyuesheng.entity  # 缓存配置读取cache:  type: ehcache  ehcache:      config: classpath:ehcache.xml

7,配置OK ,缓存里面有数据,他就会读取缓存里面的值。

8,配置信息解读

指定数据(.data and .index)存储位置,可指定磁盘中的文件夹位置期
 
maxElementsInMemory="1000"  在内存中缓存的element的最大数目
eternal="false"  设定缓存的elements是否永远不过期。如果为true,则缓存的数据始终有效,如果为false那么还要根据timeToIdleSeconds,timeToLiveSeconds判断。     timeToIdleSeconds="120" timeToLiveSeconds="120"     overflowToDisk="true" 如果内存中数据超过内存限制,是否要缓存到磁盘上。     diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"           diskPersistent="false"  否在磁盘上持久化。指重启jvm后,数据是否有效。默认为false。     diskExpiryThreadIntervalSeconds="120" 对象检测线程运行时间间隔。标识对象状态的线程多长时间运行一次。           memoryStoreEvictionPolicy="LRU"> 缓存策略。默认值LRU,可选FIFO、LFU。

 

转载于:https://www.cnblogs.com/pickKnow/p/11290732.html

你可能感兴趣的文章
浅谈tcp粘包问题
查看>>
UVA11524构造系数数组+高斯消元解异或方程组
查看>>
排序系列之——冒泡排序、插入排序、选择排序
查看>>
爬虫基础
查看>>
jquery.lazyload延迟加载图片第一屏问题
查看>>
HDU 1011 Starship Troopers (树形DP)
查看>>
手把手教你写DI_1_DI框架有什么?
查看>>
.net常见的一些面试题
查看>>
OGRE 源码编译方法
查看>>
上周热点回顾(10.20-10.26)
查看>>
C#正则表达式引发的CPU跑高问题以及解决方法
查看>>
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了...
查看>>
APScheduler调度器
查看>>
设计模式——原型模式
查看>>
【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.1.CSS框架和其他功能
查看>>
如何一个pdf文件拆分为若干个pdf文件
查看>>
web.xml中listener、 filter、servlet 加载顺序及其详解
查看>>
前端chrome浏览器调试总结
查看>>
获取手机验证码修改
查看>>
数据库连接
查看>>