[项目系列文章说明]: 该类型的文章是对项目的实现方案和部分代码进行说明.
除了使用Spring cache之外, 项目对自定义缓存扩展有一定需求的情况下, 自己动手编写一个针对方法级别的缓存(可扩展支持到类,但不易维护, 不建议使用类级别的).
结合STC-stcconfig动态配置系统, 可实现缓存的动态删除, 缓存开关实时生效.
系统实现原理
利用Spring 提供的AOP机制,实现对方法的扩展.
利用Spel表达式实现方法入参与缓存key动态匹配.
预定义缓存接口,实现对不同缓存方式的兼容.
异常处理保证业务的可用性.
整理并不复杂, 流程图略.
依赖
1, Spring
2, 任意分布式缓存
目录结构
annotation: 注解
aspect: 注解处理器
cache: 缓存接口定义和本地实现案例
test: 测试Demo
核心代码
1 | /** |
测试
1 | @SpringBootTest |
结果
1 | DemoName : -2094750780 |