← 返回首页
技能

springboot缓存注解

tencent_skillhub · 1.0.0 · 下载量 1,287 · 热度分 53.2

产品介绍

# SpringBoot 缓存注解技能 ## 技能描述 为SpringBoot项目添加基于Redis的缓存注解功能,通过 `@CacheResult` 注解实现方法返回值的缓存。 ## 使用场景 当用户需要在已有的SpringBoot项目基础上添加缓存功能时使用此技能。 ## 依赖关系 此技能依赖于 springboot-init 技能生成的基础项目结构。 ## 功能说明 ### 注解参数 | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | keyPrefix | String | "project:cache" | 缓存key的前缀 | | key | String | "" | 普通缓存key | | spelKey | String | "" | SpEL表达式缓存key | | cacheTime | int | 1 | 缓存时间 | | cacheTimeUnit | TimeUnit | TimeUnit.HOURS | 缓存时间单位 | ### Key生成策略 1. **优先使用普通key**: `keyPrefix:key` 2. **次优先使用SpEL**: `keyPrefix:解析SpEL表达式` 3. **默认策略**: `keyPrefix:类全限定名:方法名:AES(参数)` ### 使用示例 ```java // 使用普通key @CacheResult(keyPrefix = "user:", key = "info") public User getUser(Long userId) { // ... } // 使用SpEL key @CacheResult(keyPrefix = "user:", spelKey = "#userId") public User getUser(Long userId) { // ... } // 使用默认key (MD5加密参数) @CacheResult(cacheTime = 30, cacheTimeUnit = TimeUnit.MINUTES) public User getUser(Long userId) { // ... } ``` ## 生成的依赖 - cn.hutool:hutool-all (MD5加密工具) - spring-boot-starter-data-redis (Redis缓存) - spring-boot-starter-aop (AOP切面支持) ## 生成的配置文件 ### pom.xml 更新添加以下依赖: - hutool-all - spring-boot-starter-data-redis - spring-boot-starter-aop ### application.yml 更新添加Redis配置: ```yaml spring: data: redis: host: localhost port: 6379 password: database: 0 timeout: 3000ms ``` ## 生成的文件 | 文件路径 | 说明 | |----------|------| | annotation/CacheResult.java | 缓存注解 | | common/CacheNullValue.java | null值标记类 | | util/CacheKeyGenerator.java | Key生成工具类 | | aspect/CacheResultAspect.java | 缓存AOP切面 | | config/RedisConfig.java | Redis配置类 | ## 脚本执行 执行脚本添加缓存注解功能: ```bash python .trae/skills/springboot-cache/scripts/cache_annotation.py <artifactId> <packageName> [projectName] [springBootVersion] [author] ``` 示例: ```bash # 基本用法 python .trae/skills/springboot-cache/scripts/cache_annotation.py demo com.example # 指定项目信息 python .trae/skills/springboot-cache/scripts/cache_annotation.py demo com.example Demo 3.5 wql ``` ## 技术特性 1. **MD5加密**: 使用Hutool的MD5工具类,生成确定性Key 2. **SpEL表达式支持**: 支持 `#参数名`、`#参数.属性` 等表达式语法 3. **null值缓存**: 通过CacheNullValue标记类区分"未缓存"和"缓存了null" 4. **异常安全**: 缓存操作失败不影响业务执行 5. **Jackson序列化**: 使用GenericJackson2JsonRedisSerializer支持复杂对象

资源信息

作者:user_faca7523
分类:代码 & 开发助手
版本:1.0.0
认证方式: 无需认证
是否付费: 官方未说明

许可证信息摘自官方源,可能过时或缺失。商用前请以原仓库的 LICENSE 文件为准。

标签
代码生成脚本工具

信息边界说明

本页信息摘自官方文档,仅作技术信息呈现,不代表本站的判断或推荐。价格、配额、可用性以官方最新说明为准。你离开本站后的任何行为(申请 Key、付费、部署、商用),本站不做任何承诺与担保。

同类推荐

编程专家Pro.Skill

官方未说明

编程专家 Pro:融合编程专家 2.0.3 工程专题与编程大神的鸿蒙 ArkTS/ArkUI、微信小程序和小游戏开发资料。用于项目实现、根因调试、审查、重构、测试、架构性能分析及多端开发验证。支持自然语言和 @专题标识,按任务读取包内知识;只问概念时直接回答。

编程大神.Skill

官方未说明

【全栈能力】编程大神.Skill:面向复杂真实项目的高阶全栈编程助手。不止生成代码,而是从一句目标接手陌生代码库,拆解需求、补齐实现、追到根因、完成重构、联调前后端,并把结果推进到能运行、能验证、能交付。覆盖 Web、后端、脚本、iOS、安卓、鸿蒙 ArkUI、微信小程序及其他技术栈,支持中英文工程、疑难 Bug、跨模块任务和长任务续做;用构建、日志、真实入口、设备或接口证据说明结果。仅问概念时直接回答,要求落地时持续推进到验收或明确阻塞。

编程专家.Skill

需申请 Key

编程专家.Skill P8级编程助手,25年实战经验技能Skill,全栈:Java/Php网站/软件项目、API设计、Bug诊断、代码生成、代码审查、重构、测试用例、性能基准、技术选型、文档生成、任务拆解、Spec驱动、Karpathy规范、CMS二次开发、前端设计、MySQL/Mariadb、项目知识图谱,以及工程纪律层(根因调试硬闭环、阶段导航、事故复盘/SLO、威胁建模/供应链安全、生产就绪/渐进式发布、AI编码治理、面向Agent代码可读性、LLM应用安全)。支持 @标识 显式调用跳过路由。

编程专家.Skill

需申请 Key

编程专家.Skill P8级编程助手,25年实战经验技能Skill,全栈:Java/Php网站/软件项目、API设计、Bug诊断、代码生成、代码审查、重构、测试用例、性能基准、技术选型、文档生成、任务拆解、Spec驱动、Karpathy规范、CMS二次开发、前端设计、MySQL/Mariadb、项目知识图谱,以及工程纪律层(根因调试硬闭环、阶段导航、事故复盘/SLO、威胁建模/供应链安全、生产就绪/渐进式发布、AI编码治理、面向Agent代码可读性、LLM应用安全)。支持 @标识 显式调用跳过路由。

罗斯蒙德开源项目快速上手

官方未说明

【罗斯蒙德开源项目快速上手】南京罗斯蒙德基于已交付项目沉淀的开源项目快速上手场景:默认场景是「讲解整个项目」:给一个本地代码文件夹或仓库地址就直接开讲——先30秒最小扫描、不打断不等回复,一路产出必出五件套:一句话结论(值不值得用)、代码架构(分层+模块依赖+主调用链+扩展机制)、三级能力清单(带高频度与代码位置)、可运行带注释Demo、四段式踩坑点与上手全流程指南,每条结论挂 路径:行号。采用「假设确认表」告知而非卡流程——写一行假设就往下干,用户没回应也照出全量报告,把多轮沟通压缩为零。用户带着需求来时才额外启用「需求满足度评估」分支:先以批处理澄清表把需求歧义问清(≤5问/轮、带默认选项、≤3轮)并冻结需求基线,再逐项做代码审查,给出能否实现、修改位置(文件:行号)、工作量(档位+人日+估算依据)与不涵盖功能的补充方案。三条路由:只讲项目走主线,项目+需求走主线打底+评估,已有单点诉求只出评估。支持分析本地代码路径,无本地路径时联网检索官方文档与源码。触发词:讲解这个项目、解读这个仓库、这个代码是干嘛的、看看这个项目、快速上手、看源码、这个项目怎么用、代码架构、项目结构、核心功能、能力清单、生成 demo、写个示例、踩坑点、注意事项、上手指南、源码分析、依赖注入、开源项目、能不能支持、能不能实现、需要改哪里、改哪些地方、工作量多少、需求满足度、功能项评估、缺口分析、二次开发评估、代码审查。

Github

需申请 Key

使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。

什么是技能

技能(Skill)是封装好的单项能力,比如文字识别、文档摘要、关键词提取。开发者把调用逻辑和提示词打包,使用者像用插件一样加载即可,无需了解底层模型。启枢技能 收录大量技能,可直接试跑或编入方案。