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

长兴县网站建设阿里云网站建设 部署与发布考试

长兴县网站建设,阿里云网站建设 部署与发布考试,佛山制作网站企业,网站接入商排名目录 缓存支持 缓存集成 redis缓存集成 缓存支持 Spring 框架只提供抽象,不提供具体的缓存存储,底层需要依赖第三方存储组件,如果当前应用没有注册CacheManager 或者 CacheResolver 实例,Spring Boot 会按以下缓存组件的顺序来…

目录

缓存支持

 缓存集成

redis缓存集成


缓存支持

Spring 框架只提供抽象,不提供具体的缓存存储,底层需要依赖第三方存储组件,如果当前应用没有注册CacheManager 或者 CacheResolver 实例,Spring Boot 会按以下缓存组件的顺序来检测:

  1. Generic
  2. JCache (SR-107)(EhCache 3, Hazelcast, Infinispan 等等)
  3. Hazelcast
  4. lnfinispan
  5. Couchbase
  6. redis

........

Spring Boot的自动配置类为:CacheAutoConfiguration,在 CacheAutoConfiguration 缓存自动配置类中引入了 CacheConfigurationImportSelector 配置选择器:

@AutoConfiguration(after = { CouchbaseDataAutoConfiguration.class, HazelcastAutoConfiguration.class,HibernateJpaAutoConfiguration.class, RedisAutoConfiguration.class })
@ConditionalOnClass(CacheManager.class)
@ConditionalOnBean(CacheAspectSupport.class)
@ConditionalOnMissingBean(value = CacheManager.class, name = "cacheResolver")
@EnableConfigurationProperties(CacheProperties.class)
@Import({ CacheConfigurationImportSelector.class, CacheManagerEntityManagerFactoryDependsOnPostProcessor.class })
public class CacheAutoConfiguration {...static class CacheConfigurationImportSelector implements ImportSelector {@Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {CacheType[] types = CacheType.values();String[] imports = new String[types.length];for (int i = 0; i < types.length; i++) {imports[i] = CacheConfigurations.getConfigurationClass(types[i]);}return imports;}}

该选择器通过 CacheConfiqurations 缓存配置类来选择对应缓存组件的配置类:

final class CacheConfigurations {private static final Map<CacheType, String> MAPPINGS;static {Map<CacheType, String> mappings = new EnumMap<>(CacheType.class);mappings.put(CacheType.GENERIC, GenericCacheConfiguration.class.getName());mappings.put(CacheType.HAZELCAST, HazelcastCacheConfiguration.class.getName());mappings.put(CacheType.INFINISPAN, InfinispanCacheConfiguration.class.getName());mappings.put(CacheType.JCACHE, JCacheCacheConfiguration.class.getName());mappings.put(CacheType.COUCHBASE, CouchbaseCacheConfiguration.class.getName());mappings.put(CacheType.REDIS, RedisCacheConfiguration.class.getName());mappings.put(CacheType.CAFFEINE, CaffeineCacheConfiguration.class.getName());mappings.put(CacheType.CACHE2K, Cache2kCacheConfiguration.class.getName());mappings.put(CacheType.SIMPLE, SimpleCacheConfiguration.class.getName());mappings.put(CacheType.NONE, NoOpCacheConfiguration.class.getName());MAPPINGS = Collections.unmodifiableMap(mappings);}...代码...}

 缓存集成

依赖配置:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId>
</dependency>

加入依赖后,通过使用@EnableCaching注解来启用缓存功能。通过参数type指定要使用的缓存组件,以redis为示例:

spring:cache: type: redis

禁用缓存

spring:cache: type: none

 缓存类型type的值

  • GENERIC: 通用缓存类型
  • HAZELCAST: Hazelcast 缓存类型
  • INFINISPAN: Infinispan 缓存类型
  • JCACHE: JCache 缓存类型
  • COUCHBASE: Couchbase 缓存类型
  • REDIS: Redis 缓存类型
  • CAFFEINE: Caffeine 缓存类型
  • CACHE2K: Cache2k 缓存类型
  • SIMPLE: 简单缓存类型
  • NONE: 无缓存类型

redis缓存集成

Spring Boot 2.7中使用@EnableCaching注解启用缓存功能时,如果你想使用Redis作为缓存存储,你需要在配置文件中指定Redis的相关配置。

application.properties或application.yml文件中添加以下配置:


spring:cache:type: redis # 指定缓存使用redisredis:host: 127.0.0.1 # Redis服务器地址database: 1 # Redis数据库索引(默认为0)port: 6379 # Redis服务器连接端口password: # Redis服务器连接密码(默认为空)

依赖配置:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

 配置缓存管理器:

@Configuration
@EnableCaching
public class RedisTemplateConfiguration {/*** 默认过期时长,单位:秒*/@Getterprivate long expire = 60 * 60 * 24;
​@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setKeySerializer(RedisSerializer.string());redisTemplate.setHashKeySerializer(RedisSerializer.string());redisTemplate.setValueSerializer(RedisSerializer.java());redisTemplate.setHashValueSerializer(RedisSerializer.java());redisTemplate.setConnectionFactory(factory);return redisTemplate;}
​@Beanpublic HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {return redisTemplate.opsForHash();}
​@Beanpublic ValueOperations<String, String> valueOperations(RedisTemplate<String, String> redisTemplate) {return redisTemplate.opsForValue();}
​@Beanpublic ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {return redisTemplate.opsForList();}
​@Beanpublic SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {return redisTemplate.opsForSet();}
​@Beanpublic ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {return redisTemplate.opsForZSet();}
}

http://www.yayakq.cn/news/325933/

相关文章:

  • 自己建设一个网站软件洞泾做网站
  • 陕西省建设网官网住房和城乡厅官网河北网站优化建设
  • 温州论坛网站首页温州网站建设得花多少钱
  • 怎么看网站用什么平台做的怎样做当当网站代理
  • 怎么做电商赚钱北京网站优化什么价格
  • 网站建设和考核工作通知访问最多技术网站排名
  • 网页设计与网站规划设计师找工作的网站
  • 亚马逊 网站建设品牌营销理论有哪些
  • dede网站qq类资源源码沈阳微网站建设
  • 深夜小网站做仿牌网站被封
  • 大连网站建设 仟亿网站规划明细表
  • 一个服务器上有两个网站 要备案两次吗网站漂浮二维码
  • 模具做外贸网站安康市集约化平台
  • 做数学题赚钱的网站wordpress 文章左右分栏
  • 旅行网站建设方案策划书模板速成网站
  • 淘宝客高佣金网站建设小程序开发费用清单
  • 偃师建网站那家公司好成都网站建设网站
  • 什么人做网站包头网站建设设计
  • 网站建设服务费的税收分类免费的看电影电视剧的app
  • 常德网站建设策划方案网页设计与制作课程思政建设内容
  • 免费帮助建站金蝶网站建设公司案例
  • 做视频素材网站什么网站做电气自动化兼职
  • wordpress网站推翻重建常州第一门户网
  • 小学六年级做的网站医疗网站前置审批查询
  • 网站后台开发费用国内老牌的网站制作
  • 适合网站开发的python免费asp地方门户网站系统
  • 佛山网站建设锐艺a068炫酷的html5网站
  • 建站软件免费版下载成都专业建站推广公司
  • 做网站公司 营销网站诊断内容
  • 二手房网站排行潍坊恒信建设集团网站