1.背景介绍

外在因素:老大分配给我的任务
内在因素:redis在工程中经常使用,进行对其封装,熟悉相关数据结构的操作

2.Redis工具类概览

2.1整体结构概览

  1. 项目目录

image.png

  1. 第②个包下,有个过时类的标记,原来只要在类的文档注释中添加一个东西 @deprecated 即可

    1. /**
    2. * redis分布式锁实现
    3. *
    4. * @author zlt
    5. * @date 2018/5/29 14:16
    6. * <p>
    7. * Blog: https://zlt2000.gitee.io
    8. * Github: https://github.com/zlt2000
    9. *
    10. * @deprecated 建议使用Redisson的实现方式 {@link RedissonDistributedLock}
    11. */
  2. 在resources下有个spring.factories,这个东西干啥用??

  3. limit.lua的文件又是干什么用的??

    2.2spring.factories的作用

  4. 查看内容

    1. org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    2. com.yurun.common.redis.RedisAutoConfigure,\
    3. com.yurun.common.redis.lock.RedissonDistributedLock,\
    4. com.yurun.common.redis.template.RedisRepository
  5. 个人理解:指向这些类,应该就是将这些类 交给spring容器

  6. 博客阅读总结

    1. 主类所在包及其子包注册的类是可以被springboot扫描到
    2. 之外的包,需要在spring.factories中声明全路径名

      2.3简单的代码阅读疑点

  7. @Setter @Getter 注解是干什么的??

  8. @ConditionalOnClass(_RedissonClient.class) _
  9. 每个类上也不需要加点什么吗??

    3一些注解的了解

    3.1@EnableCache学习

    1.@EnableCache是一个注解,在一个配置 cacheManager的配置类头部加入。
    2.对于被@CacheAble注解修饰的方法,会自动的缓存下来

    3.2@Primary

    当一个接口有多个实现,且通过@Autowired注入属性,由于@Autowired是通过byType形式,用来给指定的字段或方法注入所需的外部资源。Spring无法确定具体注入的类(有多个实现,不知道选哪个),启动会报错并提示