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

海珠网站建设制作wordpress做手机网站

海珠网站建设制作,wordpress做手机网站,百度指数关键词未收录怎么办,建个网站怎么做推广一、简介 1、缓存介绍 Spring 从 3.1 开始就引入了对 Cache 的支持。定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术。并支持使用 JCache#xff08;JSR-107#xff09;注解简化我们的开发。#xfeff; 其…一、简介 1、缓存介绍 Spring 从 3.1 开始就引入了对 Cache 的支持。定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术。并支持使用 JCacheJSR-107注解简化我们的开发。 其使用方法和原理都类似于 Spring 对事务管理的支持。Spring Cache 是作用在方法上的其核心思想是当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存在缓存中。 2、Cache 和 CacheManager 接口说明 Cache 接口包含缓存的各种操作集合你操作缓存就是通过这个接口来操作的。Cache 接口下 Spring 提供了各种 xxxCache 的实现比如RedisCache、EhCache、ConcurrentMapCacheCacheManager 定义了创建、配置、获取、管理和控制多个唯一命名的 Cache。这些 Cache 存在于 CacheManager 的上下文中。 小结 每次调用需要缓存功能的方法时Spring 会检查指定参数的指定目标方法是否已经被调用过如果有就直接从缓存中获取方法调用后的结果如果没有就调用方法并缓存结果后返回给用户。下次调用直接从缓存中获取。 二、Cacheable 注解使用详细介绍 1、缓存使用步骤 Cacheable 这个注解用它就是为了使用缓存的。所以我们可以先说一下缓存的使用步骤 1、开启基于注解的缓存使用 EnableCaching 标识在 SpringBoot 的主启动类或配置类上。2、标注缓存注解即可① 第一步开启基于注解的缓存使用 EnableCaching 标注在 springboot 主启动类上 SpringBootApplication EnableCaching/**开启基于注解的缓存*/ Slf4j public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);log.info( 启动成功 );}}② 第二步标注缓存注解 Cacheable(value test,key #id)public String test(Integer id){System.out.println(经过这里);return 这是测试id;}注这里使用 Cacheable 注解就可以将运行结果缓存以后查询相同的数据直接从缓存中取不需要调用方法若数据过期需要调用方法查询结果返回并缓存 2、常用属性说明 下面介绍一下 Cacheable 这个注解常用的几个属性 cacheNames/value 用来指定缓存组件的名字key 缓存数据时使用的 key可以用它来指定。默认是使用方法参数的值。这个 key 你可以使用 spEL 表达式来编写keyGenerator key 的生成器。 key 和 keyGenerator 二选一使用cacheManager 可以用来指定缓存管理器。从哪个缓存管理器里面获取缓存。condition 可以用来指定符合条件的情况下才缓存unless 否定缓存。当 unless 指定的条件为 true 方法的返回值就不会被缓存。当然你也可以获取到结果进行判断。通过 #result 获取方法结果sync 是否使用异步模式。 cacheNames/value 用来指定缓存组件的名字将方法的返回结果放在哪个缓存中可以是数组的方式支持指定多个缓存。key 缓存数据时使用的 key。默认使用的是方法参数的值。可以使用 spEL 表达式去编写keyGenerator key 的生成器可以自己指定 key 的生成器通过这个生成器来生成 key 这样放入缓存中的 key 的生成规则就按照你自定义的 keyGenerator 来生成。不过需要注意的是 Cacheable 的属性key 和 keyGenerator 使用的时候一般二选一。condition 符合条件的情况下才缓存。方法返回的数据要不要缓存可以做一个动态判断。 unless 否定缓存。当 unless 指定的条件为 true 方法的返回值就不会被缓存。 sync 是否使用异步模式。默认是方法执行完以同步的方式将方法返回的结果存在缓存中。 前面说过缓存的 key 支持使用 spEL 表达式去编写下面总结一下使用 spEL 去编写 key 可以用的一些元数据 属性名称描述示例methodName当前方法名#root.methodNamemethod当前方法#root.method.nametarget当前被调用的对象#root.targettargetClass当前被调用的对象的class#root.targetClassargs当前方法参数组成的数组#root.args[0]caches当前被调用的方法使用的Cache#root.caches[0].name 3、CachePut和CacheEvict 注解使用 CachePut 将方法返回值存入到缓存中一般情况下是用在更新操作中并于Cacheable与CacheEvict配合使用CacheEvict 清除缓存值一般用在删除或更新操作中并于Cacheable与CachePut配合使用。并且在CacheEvict注解中多了两个参数 allEntries - 清除当前value下的所有缓存beforeInvocation - 在方法执行前清除缓存 示例代码示例如下 /**查询加载缓存*/Cacheable(value c, key 123)public String hello(String name) {System.out.println(name - name);return hello name;}/**更新缓存*/CachePut(value c, key 123)public String put() {return hello put;}/**删除缓存*/CacheEvict(value c, key 123)public String evict() {return hello put;}三、配置类结合Redis作为缓存 import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializationContext; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;import java.time.Duration;/*** 缓存配置类* */ EnableCaching /**开启缓存注解*/ Configuration public class RedisConfig extends CachingConfigurerSupport {Beanpublic RedisTemplateString, Object redisTemplate(RedisConnectionFactory factory) {RedisTemplateString, Object template new RedisTemplate();RedisSerializerString redisSerializer new StringRedisSerializer();Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);ObjectMapper om new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);template.setConnectionFactory(factory);//key序列化方式template.setKeySerializer(redisSerializer);//value序列化template.setValueSerializer(jackson2JsonRedisSerializer);//value hashmap序列化template.setHashValueSerializer(jackson2JsonRedisSerializer);return template;}Beanpublic CacheManager cacheManager(RedisConnectionFactory factory) {RedisSerializerString redisSerializer new StringRedisSerializer();Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);/**解决查询缓存转换异常的问题*/ObjectMapper om new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);/**配置序列化解决乱码的问题*/RedisCacheConfiguration config RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(600))/**设置缓存默认过期时间600秒*/.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)).disableCachingNullValues();return RedisCacheManager.builder(factory).cacheDefaults(config).build();}} pom.xml需要Redis依赖: !-- redis --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactIdversion2.6.6/version/dependency纯属个人经验喜欢的可以点赞关注后续见
http://www.zqtcl.cn/news/274975/

相关文章:

  • 网站关键词搜不到了濮阳网络教育
  • 推荐股票的好网站如何做好网站宣传
  • 免费网站模板网大型网络游戏
  • 网站开发语言数据库有几种广东省建设厅官网查询
  • 建新建设集团有限公司网站土巴兔装修公司电话
  • 百度网站审核期时间wordpress如何实现收费会员制
  • delphi 2010 网站开发wordpress 变装小说
  • asp.net电子商务网站前台模板企业所得税优惠政策2021年小微企业
  • 成都网站建设 lkcms深圳做网站哪个公司最好
  • 网站降权处理关于网站建设心得体会
  • 互联网站点与wordpress集成软件
  • 网站页面图片布局如何设计最新热点新闻事件
  • 学网站建设难四会市城乡规划建设局网站
  • 网站源码分享网html代码入门基础
  • 农产品网站开发方案陕西建设网成绩查询
  • 网站效益分析iis添加网站ip地址
  • 宣传海报在什么网站做网站建设的能力
  • 温州网站优化优化课程设置
  • 企业推广网站有哪些做百度推广需要什么条件
  • 如何实现网站的快速排名怎么做网站模板
  • 数据型网站建设wordpress 阅读统计
  • a做爰网站集宁建设局网站
  • 黄山建设网站公司电话wordpress微信分享图
  • 大数据网站网站的备案流程图
  • 如果自己做网站wordpress付款插件
  • 网站建设项目的结论网站开发合同适用印花税
  • 网站建设经验与教训普陀网站建设推广
  • 12306网站是是阿里巴巴做的吗专业建网站设计公司
  • 关于申请网站建设经费的请示网推推荐信
  • 网站建设请款报告网站服务器租用价格