场景描述
今天在看 renren-security 源码,发现可以在配置文件中,动态的开启/关闭redis缓存:
renren:
redis:
open: false #是否开启redis缓存 true开启 false关闭
如果reren.redis.open=true,则会把sys_config表的数据同时保存到redis
如果reren.redis.open=false,则不会把sys_config表的数据同时保存到redis。
那这种功能是如何实现的呢?
查看源码
reren.redis.open
首先,使用IDEA的Find in Path功能(我的快捷键为)在源码中查一下reren.redis.open这个配置:
源代码:发现是在一个AOP切面中使用的:是对com.newbanker.common.utils.RedisUtils类(RedisUtils的源码在下面)的所有方法做了拦截,
如果reren.redis.open=true,则执行RedisUtils的目标方法(看上图源码,在第42行),否则不做任何处理。
result = point.proceed(); // 上图源码42行&#