【simple-cache】一款只用一个注解就实现缓存的框架-我们终于迎来了SpringBoot版本

上次我们讲了【simple-cache】的使用: 【simple-cache】我开发了一款只要一个注解就可以轻松实现缓存的框架 这次主要更新的内容为:

  • 添加springboot项目
  • 框架中去除了redisconfig类,避免了redis的单机和集群问题
  • 用户可以自定义使用自己项目中的redisTemplate的bean,只需要配置redisTemplate的名称
  • RedisCache注解添加了返回类型和添加了TimeUnit

这次给大家带来了【simple-cache】的springboot版本:

simple-cache-spring-boot-starter

前置条件:

首先你的项目需要有自带的redistemplate类,如果没有则可以参考下面的配置:

java 复制代码
@Configuration
public class RedisConfig {

    @Bean("myRedisTemplate")
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate();
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
        redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        return redisTemplate;
    }
}

并且在yml文件中配置(simple-cache-spring-boot-starter已经引入了redis的包,如果你的项目是springboot则无需再引入):

单机模式

java 复制代码
spring.redis.host=127.0.0.1
spring.redis.database=0
spring.redis.port=6379

如果你的springboot要连接redis集群,就不能像单机那么填了,你需要填哨兵集群的ip和端口,配置如下:

java 复制代码
#集群
spring.redis.sentinel.master=mymaster
spring.redis.password=123456.com
spring.redis.sentinel.nodes=192.168.64.128:26379,192.168.64.129:26379,192.168.64.130:26379

使用方法:

🐋第一步,在项目中引入simple-cache-spring-boot-starter

xml 复制代码
 	    <dependency>
            <groupId>io.gitee.antopen</groupId>
            <artifactId>simple-cache-spring-boot-starter</artifactId>
            <version>1.2.0</version>
        </dependency>

🐋第二步,在启动类加上@EnableSimpleCache注解

🐋第三步,在配置文件中填写属于你自己项目的redistemplate的bean的名称

如果你redistemplate没有配置bean的名称,则可以不填写,框架会自动拿名称为redisTemplate的bean

如果你配置的redistemplate的bean的名称,如上面的前置条件里面一样,则需要配置redisTemplateName

ini 复制代码
simplecache.redisTemplateName=myRedisTemplate

🐋第四步,在你的业务类方法上添加注解RedisCache

java 复制代码
    @RedisCache(key = "testParams",expire = 100,resultClass = Result.class)
    public Result testParams(String name, String sex) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put(name, UUID.randomUUID());
        jsonObject.put(sex, new Random().nextInt(2));
        return Result.buildSuccess(jsonObject);
    }

说明:

@RedisCache可选值

属性 类型 必须指定 默认值 描述
key string 缓存的key,可以自定义
expire long 1(一天) 缓存的时间,可以修改
unit TimeUnit TimeUnit.DAYS(一天) 缓存的单位,可以修改
resultClass Class<?> JSONObject.class 返回类的class,方便序列化,可以修改

Get方法,例如第四步在redis中存储的key为:

java 复制代码
testParams_张三_男

Post方法,例如:

java 复制代码
 /**
     * Post缓存带参数方法
     * @return string
     */
    @PostMapping("/testParamsPost")
    public Object testParamsPost(@RequestBody RequestParamDto requestParamDto) {
        return testService.testParamsPost(requestParamDto);
    }
java 复制代码
    @RedisCache(key = "testParamsPost",resultClass = Result.class)
    public Result testParamsPost(RequestParamDto requestParamDto) {
        return Result.buildSuccess(requestParamDto);
    }

在redis中存储的key为

java 复制代码
testParamsPost_RequestParam{name='张三', age=1}

如果传入的实体类,则会默认调用传入类的tostring方法:

完整代码:

Simple Cache Spring Boot Starter

Simple Cache Spring Boot 快速启动代码

后续版本考虑:

  • 添加el表达式,可以自定义key的名称

如果有建议欢迎提出

如果你也想参加开源项目欢迎加入蚂蚁开源

本次更新主要是给大家带来了simple-cache的springboot版本,相较于之前的版本,这个版本添加了一些新特性和改进,如:

  • 添加了springboot项目支持;
  • 去除了redisconfig类,避免了redis的单机和集群问题;
  • 用户可以自定义使用自己项目中的redisTemplate的bean,只需要配置redisTemplate的名称;
  • RedisCache注解添加了返回类型和添加了TimeUnit。

使用simple-cache的springboot版本也十分简单,只需要:

  1. 引入simple-cache-spring-boot-starter依赖;
  2. 在启动类加上@EnableSimpleCache注解;
  3. 在配置文件中填写属于你自己项目的redistemplate的bean的名称;
  4. 在你的业务类方法上添加注解RedisCache。

此外,在RedisCache注解中还有一些可选属性,比如缓存的key、缓存的时间、缓存的单位、返回类型等,使用起来也十分灵活方便。

总之,使用simple-cache可以轻松实现缓存,提高系统的访问速度和性能,非常适合于中小型项目的缓存需求。

相关推荐
天若有情67316 小时前
【java EE】IDEA 中创建或迁移 Spring 或 Java EE 项目的核心步骤和注意事项
后端·spring·java-ee·intellij-idea
大鱼七成饱18 小时前
💥 从崩溃到稳定:我踩过的 Rust Tokio 线程池坑(含代码示例)
后端
喵个咪18 小时前
开箱即用的GO后台管理系统 Kratos Admin - 站内信
后端·微服务·go
韩立学长18 小时前
基于Springboot的旧物公益捐赠管理系统3726v22v(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
Dyan_csdn19 小时前
springboot系统设计选题3
java·spring boot·后端
Yeats_Liao19 小时前
时序数据库系列(二):InfluxDB安装配置从零搭建
数据库·后端·时序数据库
Yeats_Liao19 小时前
时序数据库系列(一):InfluxDB入门指南核心概念详解
数据库·后端·时序数据库·db
蓝-萧20 小时前
springboot系列--自动配置原理
java·后端
bobogift21 小时前
【玩转全栈】----Django基本配置和介绍
java·后端
倚栏听风雨21 小时前
Async-Profiler 框架简介
后端