Springboot中的缓存Cache和CacheManager原理介绍

前端开发 作者: 2024-08-23 00:30:02
背景理解 什么是缓存,为什么要用缓存 程序运行中,在内存保持一定时间不变的数据就是缓存。简单到写一个Map,里面放着一些key,value数据,就已经是个缓存了 所以缓存并不是什么高大上的技术,只是个

背景理解

缓存的思考

SpringCache的好处

@Component
public class MyCache implements Cache {
  /*
       实现接口方法,一些关于数据set和get的方法
       CacheManager是根据Cache的名字进行管理的
       所以假设这个Cache名为MyCache
  */  
}
@Cacheable(value = "MyCache",key = "#id")
public String getNavegationURLs(String id) {
        //一个获取数据的方法
}

注解如何起作用的,源码流程大致了解

 代理类原理介绍(AOP切面之类的都是通过代理哦)

首先实现一个InvocationHandler,方法调用会被转发到该类的invoke()方法。
意思是:对代理对象的所有接口方法调用都会转发到InvocationHandler.invoke()方法,在invoke()方法里我们可以加入任何逻辑,比如修改方法参数,加入日志功能、安全检查功能等;之后我们通过某种方式执行真正的方法体
 
2.CGLIB动态代理,不要求被代理的类需要实现接口,但是final的方法无法被代理(通过继承来实现代理
那么代理类满足以下条件:
实现一个MethodInterceptor,方法调用会被转发到该类的intercept()方法
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_66953.html