用来帮助记忆:
Retorfit是基于AOP思想(面向切面编程),对RestfulApi注解进行动态代理的网络框架。
AOP:AOP的本质是在一系列纵向的控制流程中,把那些相同的子流程提取成一个横向的面
- 静态代理:代理类是在编译时就实现好的。也就是说 Java 编译完成后代理类是一个实际的 class 文件。
- 动态代理:代理类是在运行时生成的。也就是说 Java 编译完之后并没有实际的 class 文件,而是在运行时动态生成的类字节码,并加载到JVM中。
通过Retrofit的注解,写一个代理接口类Github,通过Retrofit.create(Github.class),获取此动态代理,在通过动态代理的方法实现Http请求。
Retrofit 非常巧妙的用注解来描述一个 HTTP 请求,将一个 HTTP 请求抽象成一个 Java 接口,然后用了 Java 动态代理的方式,动态的将这个接口的注解“翻译”成一个 HTTP 请求,最后再执行这个 HTTP 请求