SpringBoot自动配置Redis原理

                          SpringBoot自动配置Redis原理

目录

                          SpringBoot自动配置Redis原理

一.SpringBoot自动配置Redis原理

一.自动配置redis

RedisAutoConfiguration

二.配置环境

为什么会在满足俩个条件的情况下加载呢?

总结:

二.常用API



一.SpringBoot自动配置Redis原理

一.自动配置redis

自定义自动配置,在依赖redis的jar包时,生成对象JedisCluster,如果当前没有依赖redis的jar包不生成;核心注解是Spring 的条件注解ConditionalOnClass

只有满足这俩个条件才能通过加载,这俩个是核心自动配置的注解

测试结果,说明加载成功了,满足条件

源码中生成俩个关键对象

测试N次终于截出来了, 通常我们使用的是字符串

RedisAutoConfiguration

  • 根据依赖中的类扫描条件确定是否加载执行,一旦依赖了starter-redis,就可以执行加载了,看到可以返回创建两个Bean对象,一个叫RedisTemplate,StringRedisTemplate
  • RedisTemplate除了能处理字符串数据,还可以处理Object对象数据,底层都是序列化成二进制处理,redisTemplate可以使用任意的Object类型的对象做key值;
  • StringRedisTemplate在redisTemplate基础上对所有数据的序列化反序列化做String类型处理;

二.配置环境

为什么会在满足俩个条件的情况下加载呢?

解答:

主要是跟SpringBook三大组合注解其中一个有关,PS:不清楚三大组合注解是哪三个的可以看我的博客,

点进去

@EnableAutoConfiguration

不在扫描范围之内的配置的对象,都为这个注解来处理

依赖注入一个对象加载到当前环境中执行,注解一旦扫描到,自动配置的spring容器中,注入一个对象EnableAutoConfigurationImportSelector

调用自己的方法,加载路径中/META-INF/spring.factories的文件 依赖的jar包中spring-boot-autoconfigure.jar

例如只要依赖中有这个类,就会被加载,这个版本目前是2.0

被导入但是,不满足条件,不被加载执行

进入父类中,看看找到一个selectImports 方法

在扫描当前环境,所有加载扫描配置的包路径加载到List 集合中

selectImports加载spring.factories(随着springboot升级,越来越多)

总结

RedisAutoConfiguration为什么会读取到注解呢?

springboot在依赖各种内容之后,都会加载其中的添加的配置类的list;

  • EnableAutoConfiguration

注解一旦扫描到,自动配置的spring容器中,注入一个对象EnableAutoConfigurationImportSelector

  • EnableAutoConfigurationImportSelector

调用自己的方法,加载路径中/META-INF/spring.factories的文件 依赖的jar包中spring-boot-autoconfigure.jar

  • AutoConfigurationImportSelector父类中自动导入选择器

selectImports加载spring.factories(随着springboot升级,越来越多)

二.常用API

  • 了解一下opsFor*方法                                      
  • opsForValue();String类型数据操作api;
  • opsForHash();hash类型操作api
  • opsForSet();
  • opsForZSet();
  • opsForList();
  • opsForCluster();//与集群操作相关,入setslots forget等
  • opsForGeo();//判断时间复杂度,判断O(1),O(log)
  • opsForHyperLogLog();//与时间复杂度和概率相关的算法封装api
  •  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值