下图是Cglib版动态代理生成逻辑的时序图:

查看大图

动态代理对象生成方式-Cglib版

我们看下生成的Cglib版动态代理长什么样:

查看大图

动态代理对象生成结果示例-Cglib版

比起Jdk版动态代理生成稍微复杂些,也说明Cglib做了更多的工作,在性能测试结果上比Jdk版动态代理要好。现在这两种动态代理生成方式都介绍完了。在获取bean的路径中还有最后一步,也很关键:出厂验收。不管是生产零部件的工厂(OQC,FQC),还是做软件相关的厂商(QA),都少不了出厂验收。Spring也对自己生产的Bean进行检验,毕竟代码逻辑太复杂。那我们看看Spring是如何验收的:验收生成的Bean实例

附录:

  1. Cglib-Callback类图
  2. Cglib-CallbackFilter类图
  3. Cglib-GeneratorStrategy类图

快速导航: