前言
jeeshop中通过SystemManager
管理了大量的缓存数据,来提升系统的性能,但这些缓存数据全部都是存放于内存中的,无法满足特定场景的数据更新(如集群环境)。JShop对jeeshop的缓存机制进行了扩展,提供CacheProvider
来辅助SystemManager
管理这些缓存数据,通过CacheProvider
,可以把缓存存放在内存,ehcache,redis,memcached等各种不同的容器中,从而实现高度可定制的缓存管理机制。
CacheProvider
JShop中提供了三种不同类型的CacheProvider
,分别为SimpleCacheProvider
,EhcacheCacheProvider
和RedisCacheProvider
, 分别使用内存,ehcache和redis来管理缓存数据. 开发者可以方便地定制自己的CacheProvider
,来实现对缓存的管理。
CacheProvider接口定义
public interface CacheProvider {
/**
* 放入cache中
* @param key
* @param cacheObject
*/
public void put(String key, Serializable cacheObject);
/**
* 获取放在cache中的内容
* @param key
* @return
*/
public Serializable get(String key);
/**
* 清除cache中对应的值
* @param key
*/
public void remove(String key);
/**
* 清除所有的cache
*/
public void clear();
}
CacheProvider与SystemManager配置
Jshop的缓存机制配置位于spring/applicationContext-cache.xml
, 缓存配置示例如下:
<bean id="systemManager" class="net.jeeshop.core.front.SystemManager">
<property name="cacheProvider" ref="ehcacheCacheProvider"/>
</bean>
<bean id="ehcacheCacheProvider" class="net.jeeshop.core.cache.EhcacheCacheProvider">
<property name="configLocation" value="classpath:ehcache.xml"></property>
<property name="cacheName" value="eternalCache"/>
</bean>
SimpleCacheProvider
SimpleCacheProvider
内部通过Map来将所有缓存数据存放在内存中,所以相对简单,并会占用较多的内存资源,可以在一般的小型应用中使用,它的使用不需要其他的配置信息,只需要在配置文件中注入到systemManager即可,如:
<bean id="systemManager" class="net.jeeshop.core.front.SystemManager">
<property name="cacheProvider" ref="simpleCacheProvider"/>
</bean>
<!-- cache provider -->
<bean id="simpleCacheProvider" class="net.jeeshop.core.cache.SimpleCacheProvider"/>
EhcacheCacheProvider
EhcacheCacheProvider
通过ehcache管理缓存数据,使用它需要提供两个属性: configLocation
: ehcache配置文件路径 cacheName
: 所用的Cache名称(这里需要配置cache为永不过期,即eternal=true) 示例:
<bean id="ehcacheCacheProvider" class="net.jeeshop.core.cache.EhcacheCacheProvider">
<property name="configLocation" value="classpath:ehcache.xml"></property>
<property name="cacheName" value="eternalCache"/>
</bean>
RedisCacheProvider
EhcacheCacheProvider
通过redis管理缓存数据,使用它需要提供Redis相关的配置信息,如数据源,连接池等。 相关的配置位于conf.properties
,如下:
##redis配置##
redis.ip=localhost
redis.port=6379
redis.password=
redis.pool.maxIdle=200
redis.pool.testOnBorrow=true
完整的spring配置信息如下:
<bean id="redisCacheProvider" class="net.jeeshop.core.cache.RedisCacheProvider">
<property name="redisTemplate" ref="redisTemplate"/>
</bean>
<bean id="jedisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="hostName" value="${redis.ip}"/>
<property name="port" value="${redis.port}"/>
<property name="password" value="${redis.password}"/>
<property name="poolConfig" ref="jedisPoolConfig"/>
</bean>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory"/>
</bean>
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!--<property name="maxActive" value="${redis.pool.maxActive}"/>-->
<property name="maxIdle" value="${redis.pool.maxIdle}"/>
<!--<property name="maxWait" value="${redis.pool.maxWait}"/>-->
<property name="testOnBorrow" value="${redis.pool.testOnBorrow}"/>
</bean>
相关推荐
在互联网技术日新月异的今天,电子商务已经成为商业活动的重要组成部分。其中,B2C(Business-to-Consumer)电商平台以其便捷、高效的特性深受消费者喜爱。Jshop B2C商城系统,作为一款基于SpringMVC框架的开源电商...
【标题】:“最好用的开源B2C电商系统Java版”指的是基于Java语言开发的、专用于商业对消费者(Business-to-Consumer)电子商务平台的开源软件。这种系统通常包括前端展示、购物车、订单处理、支付接口、库存管理等...
【Jshop小程序商城 v1.1.4】是一款专为中小企业设计的开源电商系统,旨在提供高效的移动电子商务服务。这个系统的重要特点在于它的前后端分离架构,为用户提供了优秀的使用体验和灵活的开发环境。 首先,让我们关注...
python教程学习
tdac034.pdf
veclibm111111111111
nssm工具,进行2次解压后即可
视讯镜头优化,操作不走
【数据结构】的资源,包括书籍、在线课程和网站
北京大学-DeepSeek系列-提示词工程和落地场景.pdf.png
【财信国际经济研究院-2025研报】2025年2月CPI和PPI数据点评:通胀低于预期,内需亟待提振.pdf
【毕业设计】java-springboot+vue精品在线试题库系统源码(完整前后端+mysql+说明文档+LunW).zip
python安装-25.求 a 的 b 次方——有点不好意思哈.py
代码实现了自适应IMM(交互式多模型)算法,专注于对目标状态进行估计,并结合了匀速(CV)和匀加速(CA)运动模型。它使用自适应观测噪声估计和扩展卡尔曼滤波器(EKF)作为滤波主体,并在最后提供误差统计特性输出。
中产品工业物联网联网的基础功能,是企业开启数字化转型的入门之选。它能帮助企业快速搭建起基础的设备数据采集与监控体系,以较低成本实
北京大学DeepSeek系列-DeepSeek与AIGC应用.pdf.png
【毕业设计-java】springboot-vue基于多维分类的知识管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
## 一、数据介绍 本数据参考C刊《管理评论》佟岩(2024)老师的做法,使用各年度省级政府工作报告中“减碳”关键词的词频总数来测度地方政府对“减碳”的重视程度,“减碳”关键词包括二氧化碳、低碳、减排、节能、能耗、环境保护(环保)、生态、绿色。 本数据包含:原始数据、参考文献、代码do文件、最终结果。 ## 二、参考文献: 佟岩,李鑫,徐国铨.企业集团碳减排压力与债务分布-来自高耗能上市公司的经验证据[J].管理评论,2024,36(02):210-221.DOI:10.14120/j.cnki.cn11-5057/f.2024.02.014 ## 三、相关数据:城市、城市编码、年份、减碳重视程度词频。
python教程学习
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目