当前位置: 首页 > news >正文

网站轮播广告代码网上做兼职做网站

网站轮播广告代码,网上做兼职做网站,远洋国际建设有限公司网站,vps网站访问不了一、Spring缓存概念 Spring从3.1开始定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术#xff1b; 并支持使用 JCache#xff08;JSR-107#xff09; 注解简化我们开发。 常用的缓存实现有 RedisCache 、EhCach… 一、Spring缓存概念 Spring从3.1开始定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术 并支持使用 JCacheJSR-107 注解简化我们开发。 常用的缓存实现有 RedisCache 、EhCache、ConcurrentMapCache 、Guava Cache谷歌等。 1、Spring Cache 介绍 Spring Cache是一个框架实现了基于注解的缓存功能只需要简单的加一个注解就能实现缓存功能 Spring Cache提供了一层抽象底层可以切换不同的Cache实现具体是通过CacheManager接口来统一不同的缓存技术 针对于不同的缓存技术需要实现不同的CacheManager CacheManager 描述 EhCacheCacheManager 使用EhCache作为缓存技术 GuavaCacheManager 使用Google的GuavaCache作为缓存技术 RedisCacheManager 使用Redis作为缓存技术 2、Spring Cache 常用注解 我们来介绍Spring Cache用于缓存的常用的四个注解 注解 说明 EnableCaching 开启缓存注解功能 Cacheable 在方法执行前先查看缓存中是否存有数据如果有数据直接返回数据如果没有调用方法并将返回值存入缓存 CachePut 将方法的返回值放到缓存 CacheEvict 将一条或多条从缓存中删除 在Spring项目中使用缓存技术只需要导入相关缓存技术的依赖包并在启动类上加上EnableCaching开启缓存支持即可 二、Ehcache介绍 EhCache 是一个纯Java的进程内缓存管理框架属于开源的Java分布式缓存框架主要用于通用缓存,Java EE和轻量级容器是从 Hibernate 的缓存开始的。 目前版本已到了Ehcache 3.10,Ehcache 3引入了以下内容: 改进的 API利用 Java 泛型并简化缓存交互 与javax.cache API JSR-107完全兼容 堆下存储功能包括仅堆下缓存 开箱即用的Spring Caching和Hibernate集成这要归功于javax.cache支持 1、 Ehcache特性 1、快速轻量 Ehcache 是最快的 Java 缓存之一很小的 jar 包 2、伸缩性缓存在内存和磁盘存储可以伸缩到数 G 3、灵活性Ehcache 1.2 具备对象 API 接口和可序列化 API 接口。 4、标准支持 Ehcache 提供了对 JSR107 JCACHE API 最完整的实现 5、可扩展性 监听器可以插件化 6、应用持久化 在 VM 重启后持久化到磁盘的存储可以复原数据 官网Ehcache 2、 Ehcache 的加载模块列表 ehcache-coreAPI标准缓存引擎RMI 复制和 Hibernate 支持 ehcache分布式 Ehcache包括 Ehcache 的核心和 Terracotta 的库 ehcache-monitor企业级监控和管理 ehcache-web为 Java Servlet Container 提供缓存、gzip 压缩支持的 filters ehcache-jcacheJSR107 JCACHE 的实现 ehcache-jgroupsreplication使用 JGroup 的复制 ehcache-jmsreplication使用 JMS 的复制 ehcache-openjpaOpenJPA 插件 ehcache-serverwar 内部署或者单独部署的 RESTful cache server ehcache-unlockedreadsview允许 Terracotta cache 的无锁读 ehcache-debugger记录 RMI 分布式调用事件 Ehcache for RubyJruby and Rails 支持 3、核心定义 cache manager缓存管理器以前是只允许单例的不过现在也可以多实例了 cache缓存管理器内可以放置若干 cache存放数据的实质所有 cache 都实现了 Ehcache 接口 element单条缓存数据的组成单位 system of recordSOR可以取到真实数据的组件可以是真正的业务逻辑、外部接口调用、存放真实数据的数据库等等缓存就是从 SOR 中读取或者写入到 SOR 中去的 Ehcache 支持的数据存储包括 堆上存储 - 利用 Java 的堆上 RAM 内存来存储缓存条目。此层使用与 您的 Java 应用程序所有这些应用程序都必须由 JVM 垃圾回收器扫描。您的 JVM 堆空间越多 利用应用程序性能受垃圾回收暂停的影响就越大。这家商店是 速度极快但通常是您最有限的存储资源。 堆外存储 - 大小仅受可用 RAM 的限制。 不受 Java 垃圾回收 GC 的约束。 非常快但比堆上存储慢因为在存储和重新访问数据时必须将数据移入和移出 JVM 堆。 磁盘存储 - 利用磁盘文件系统存储缓存条目。 这种类型的存储资源通常非常丰富但比基于 RAM 的存储慢得多。至于所有使用磁盘的应用程序 存储时建议使用快速专用的磁盘来优化吞吐量。 群集存储 - 此数据存储是远程服务器上的缓存。 远程服务器可以选择具有故障转移服务器以提供改进的高可用性。 由于群集存储会因网络延迟以及建立客户端/服务器一致性等因素而带来性能损失 从本质上讲此层比本地堆外存储慢。 三、开发实例 引入依赖 dependencygroupIdorg.ehcache/groupIdartifactIdehcache/artifactIdversion3.10.0/version/dependency 配置文件 ?xml version1.0 encodingUTF-8? ehcache updateCheckfalse namedefaultCachediskStore path../temp/bojun/ehcache /!-- 默认缓存配置. --defaultCache maxEntriesLocalHeap100 eternalfalse timeToIdleSeconds1800 timeToLiveSeconds3600overflowToDiskfalse maxEntriesLocalDisk100000 /cache nameSystemAuthorizingRealm maxEntriesLocalHeap2000eternalfalse timeToIdleSeconds3600 timeToLiveSeconds0overflowToDiskfalse statisticstrue/cachecache nameshiro-activeSessionCache maxEntriesLocalHeap2000eternalfalse timeToIdleSeconds3600 timeToLiveSeconds0overflowToDiskfalse statisticstrue/cache!-- 系统缓存 --cache namesysCache maxEntriesLocalHeap100 eternalfalse overflowToDiskfalse/cache namecmsCache maxEntriesLocalHeap3000 eternalfalse overflowToDiskfalse/cache namecaptchaCache maxEntriesLocalHeap3000 timeToLiveSeconds300 eternalfalse overflowToDiskfalse/!-- 用户缓存 --cache nameuserCache maxEntriesLocalHeap100 eternalfalse overflowToDiskfalse/!-- 工作流模块缓存 --cache nameactCache maxEntriesLocalHeap100 eternalfalse overflowToDiskfalse/cache namesys.config maxEntriesLocalHeap100 eternalfalse overflowToDiskfalse/!-- 系统活动会话缓存 --cache nameactiveSessionsCache maxEntriesLocalHeap10000 overflowToDiskfalseeternalfalse timeToLiveSeconds0 timeToIdleSeconds0diskPersistenttrue diskExpiryThreadIntervalSeconds600/ /ehcache配置类代码 ConditionalOnProperty(name spring.cache.type, havingValue ehcache) Configuration EnableCaching//标注启动缓存. public class CacheConfig {/*** param ehCacheManagerFactoryBean* return*/Beanpublic EhCacheCacheManager ehCacheCacheManager(EhCacheManagerFactoryBean ehCacheManagerFactoryBean){System.out.println(CacheConfiguration.ehCacheCacheManager());return new EhCacheCacheManager(ehCacheManagerFactoryBean.getObject());}/** 据shared与否的设置,* Spring分别通过CacheManager.create()* 或new CacheManager()方式来创建一个ehcache基地.*/Beanpublic EhCacheManagerFactoryBean ehCacheManagerFactoryBean(){System.out.println(CacheConfiguration.ehCacheManagerFactoryBean());EhCacheManagerFactoryBean cacheManagerFactoryBean new EhCacheManagerFactoryBean ();cacheManagerFactoryBean.setShared(true);return cacheManagerFactoryBean;}} 工具类 public class CacheUtils { private static CacheManager cacheManager SpringContextHolder.getBean(CacheManager.class);private static final String SYS_CACHE sysCache;/*** 获取SYS_CACHE缓存** param key* return*/public static Object get(String key) {return get(SYS_CACHE, key);}/*** 获取SYS_CACHE缓存** param key* param defaultValue* return*/public static Object get(String key, Object defaultValue) {Object value get(key);return value ! null ? value : defaultValue;}/*** 写入SYS_CACHE缓存** param key* return*/public static void put(String key, Object value) {put(SYS_CACHE, key, value);}/*** 从SYS_CACHE缓存中移除** param key* return*/public static void remove(String key) {remove(SYS_CACHE, key);}/*** 获取缓存** param cacheName* param key* return*/public static Object get(String cacheName, String key) {if( getCache(cacheName).get(key) null){return null;}else {return getCache(cacheName).get(key).get();}}/*** 获取缓存** param cacheName* param key* param defaultValue* return*/public static Object get(String cacheName, String key, Object defaultValue) {Object value get(cacheName, key);return value ! null ? value : defaultValue;}/*** 写入缓存** param cacheName* param key* param value*/public static void put(String cacheName, String key, Object value) {getCache(cacheName).put(key, value);}/*** 从缓存中移除** param cacheName* param key*/public static void remove(String cacheName, String key) {getCache(cacheName).evict(key);}/*** 获得一个Cache没有则显示日志。** param cacheName* return*/private static Cache getCache(String cacheName) {Cache cache cacheManager.getCache(cacheName);if (cache null) {throw new RuntimeException(当前系统中没有定义“ cacheName ”这个缓存。);}return cache;} } 测试代码 Cacheable(keyuser_#id,valueuserCache)public User getUserById(String id){ return userDao.findById(id); } 这是一个cache框架可以根据需要引入不同的cache实现方案
http://www.yutouwan.com/news/37579/

相关文章:

  • 网站开发需要用到哪些软件网站5建设需要学什么时候开始
  • 建站saas怎么创建一个博客网站
  • 服装行业网站建设绞铜机 东莞网站建设
  • 中国建设银行大沥网站线上 网站建设 商务信息
  • 张家港杨舍网站制作永兴网站开发
  • 部队网站建设建议农村淘宝官网首页
  • app下载网站模板网站转化率是什么意思
  • 网站建设与维护模板株洲58同城网站建设电话
  • 微信网站链接网站建设wordpress批量 添加别名
  • 番禺网站建设公司排名wordpress采集豆瓣插件
  • 专业商城网站设计制作广东企业网站备案
  • 在自己的网站上怎么做淘宝客建盏哪家好
  • 免费购物网站系统江门建设建筑网站
  • 下载网站后怎么做的英文版的wordpress能否改中文版
  • 博客优化网站seo怎么写郴州新网招聘手机版
  • discuz门户网站模板wordpress自定义页面跳转
  • 表白网站制作系统源码网页制作常用软件
  • 青岛住房和城乡建设 网站wordpress 禁用响应
  • 有什么好的手机推荐网站浙江荣盛建设集团网站
  • 主流电商网站开发框架网站开发过程中的方法
  • 做网站公司大连免费心理咨询师24小时在线咨询
  • 荆州网站建设价格35互联做的网站如何
  • 加强网站建设考察交流网站推广排名公司
  • 杭州建站模板系统国内网站 备案
  • 百度怎样可以搜到自己的网站什么网站做视频赚钱
  • 网站编程薪资三明网站建设公司
  • 赣州市铁路建设办公室网站wordpress自定义作者连接
  • 免费快速建站工具怎么为网站做外链
  • 上海专业做网站推广的公司苏州工业园区服务外包职业学院
  • 绵阳网站维护托管网站的发布方案有哪些