背景
由于我们的每次显示图片的话,都将需要大量的查询和相关的流。这样对我们的系统压力极大,用户体验极差。
所以使用了缓存把图片流缓存起来,这样就可以解决问题了。
实现
这里我用的是ehcache,由于他小巧依赖少。
1.把我们的包导入进来
<!--开启 cache 缓存-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- ehcache 缓存 -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
2.配置xml文件
<?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="/data/flow/ehcache"/>
<defaultCache
eternal="false"
maxElementsInMemory="900"
overflowToDisk="false"
diskPersistent="false"
timeToIdleSeconds="0"
timeToLiveSeconds="30"
memoryStoreEvictionPolicy="LRU"/>
<!-- 这里的 cache-process-image 缓存流程的图片信息 -->
<cache
name="cache-process-image"
eternal="false"
maxElementsInMemory="2000"
maxElementsOnDisk="3000"
overflowToDisk="true"
diskPersistent="true"
timeToIdleSeconds="0"
timeToLiveSeconds="1296000"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
3.配置application.properties文件
spring.cache.ehcache.config=classpath:/ehcache/flow-ehcache.xml
4.配置缓存注解
@Cacheable(value = FlowConstant.CACHE_PROCESS_IMAGE, key = "'" + FlowConstant.PROCESSINSTANCE_PREFIX + "'+ #processDefinitionId")
public byte[] createImage(String processDefinitionId) {}
来源:CSDN
作者:gblfy
链接:https://blog.csdn.net/weixin_40816738/article/details/103501646