最近了解到 SpringCache 这个组件,是用了 AOP 来消灭这样的重复代码:
public V queryList(){
if(Redis 缓存里有值){
return 值;
}else{
查数据库;
查询结果写入缓存;
}
}
使用 SpringCache 后,写法变成下面这样,与缓存打交道的代码就被放到运行时生成的代理类里去了:
@Cacheable
public V queryList(){
查数据库
}
}
看到这个组件的用法,我觉得很方便、灵活,我想请教的是,当工作中遇到类似需要写/封装组件的情况,应该怎么去思考,或者说解题框架是什么。
求大佬赐教!! orz
PS:没看到 SpringCache 前我也想过去消灭这种重复代码,但是我只知道一个很单一的目标:要把缓存相关操作提出来。关于怎么提、提完之后开发人员的使用方式(上面的使用方式就是注解 @Cacheable)完全没有思路。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.