1. Java cglib 代理

    JDK 动态代理有一个最致命的问题是其只能代理实现了接口的类,CGLIB 动态代理机制就可以避免这个限制。 CGLIB(Code Generation Library)是一个基于ASM的字节码生成库,它允许我们在运行时对字节码进行修改和动态生成。CGLIB 通过继承方式实现代理。 很多知名的开源框架都使用到了CGLIB, 例如 Spring 中的 AOP 模块中:如果目标对象实现了接口, 则默认采用 JDK 动态代理,否则采用 CGLIB 动态代理。

    2021/09/26 proxy

  2. Java JDK 代理

    在静态代理中我们需要对哪个接口和哪个被代理类创建代理类,所以我们在编译前就需要代理类实现与被代理类相同的接口, 并且直接在实现的方法中调用被代理类相应的方法;但是动态代理则不同,我们不知道要针对哪个接口、 哪个被代理类创建代理类,因为它是在运行时被创建的。也就是:JDK静态代理是通过直接编码创建的, 而JDK动态代理是利用反射机制在运行时创建代理类的。

    2021/09/26 proxy

  3. Maven deploy 上传jar包到私服的方法及其配置文件

    如果搭建了maven私服,那么需要将项目基础脚手架,或者依赖项目上传到私服,供其他人下载使用, 备份一下配置,后续快速复用~

    2021/09/18 Maven

  4. Spring boot 脚手架相关

    扫描注解 再spring整合mybatis的时候,有两个注解需要注意:

    2021/09/18 framework

  5. RocketMQ Q&A

    MQ如何选型

    2021/09/13 framework

  6. spring bean 的生命周期

    在传统的Java应用中,bean的生命周期很简单。使用Java关键字new进行bean实例化,然后该bean就可以使用了。 一旦该bean不再被使用,则由Java自动进行垃圾回收。

    2021/09/06 framework

  7. 微服务目录汇总

    微服务体系相关文章目录汇总

    2021/09/05 Microservice

  8. 开源框架目录汇总

    Spring

    2021/09/05 framework

  9. spring 循环依赖解决方案

    简简单单一个循环依赖问题,其实蕴含的是Spring 最核心的两个点: Bean的生命周期 与 AOP原理。

    2021/09/05 framework

  10. Java并发 - ThreadLocal

    ThreadLocal 提供了线程本地的实例。它与普通变量的区别在于,每个使用该变量的线程都会初始化一个 完全独立的实例副本。ThreadLocal 变量通常被private static修饰。当一个线程结束时,它所使用的 所有 ThreadLocal 相对的实例副本都可被回收。总的来说,ThreadLocal 适用于每个线程需要自己独立 的实例且该实例需要在多个方法中被使用,也即变量在线程间隔离而在方法或类间共享的场景。

    2021/09/05 concurrent