`
kerlubasola
  • 浏览: 678323 次
文章分类
社区版块
存档分类
最新评论

Bean第一次从容器获取的时候,如果bean配置了lookup-method,那么就使用了cglib来进行调用方法转换

 
阅读更多

Bean第一次从容器获取的时候,如果bean配置了lookup-method,那么就使用了cglib来进行调用方法转换:


我们默认的容器DefaultListableBeanFactory,其中的getBean加载的时候会走到下面的代码:


org.springframework.beans.factory.support.SimpleInstantiationStrategy:


那么在通过BeanDefinition创建Bean的时候,进行了beanDefinition.getMethodOverrides().isEmpty()判断,是通过cglib还是BeanUtils进行。
那么这个判断什么含义呢?
看我们dom树解析代码如下:
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate:


也就是配置了lookup-method的时候用cglib,因为要借助cglib来替换方法。
具体的cglib的操作是通过filter判断来调用什么代理返回形式:


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics