spring源码IOC实现原理(三).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
spring源码IOC实现原理(三)

上一章我们已经初步认识了BeanFactory和BeanDefinition,一个是IOC的核心工厂接口,一个是IOC的bean定义接口,上章提到说我们无法让BeanFactory持有一个MapString,Object来完成bean工厂的功能,是因为spring的初始化是可以控制的,可以到用的时候才将bean实例化供开发者使用,除非我们将bean的lazy-init属性设置为true,初始化bean工厂时采用延迟加载。 那么知道了上述两个接口,我相信不少人甚至不看源码都已经猜到spring是如何做的了。没错,就是让bean工厂持有一个MapString,BeanDefinition,这样就可以在任何时候我们想用哪个bean,取到它的bean定义,我们就可以创造出一个新鲜的实例。 接口当然不可能持有这样一个对象,那么这个对象一定是在BeanFactory的某个实现类或者抽象实现类当中所持有的,我经过跋山涉水,终于把它给找出来了,来看DefaultListableBeanFactory。 /* *Copyright2002-2010theoriginalauthororauthors. *LicensedundertheApacheLicense,Version2.0(theLicense); *youmaynotusethisfileexceptincompliancewiththeLicense. *YoumayobtainacopyoftheLicenseat */licenses/LICENSE-2.0 *Unlessrequiredbyapplicablelaworagreedtoinwriting,software *distributedundertheLicenseisdistributedonanASISBASIS, *WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied. *SeetheLicenseforthespecificlanguagegoverningpermissionsand *limitationsundertheLicense. */ packageorg.springframework.beans.factory.support; importjava.io.NotSerializableException; importjava.io.ObjectStreamException; importjava.io.Serializable; importjava.lang.annotation.Annotation; importjava.lang.ref.Reference; importjava.lang.ref.WeakReference; importjava.lang.reflect.ParameterizedType; importjava.lang.reflect.Type; importjava.security.AccessController; importjava.security.PrivilegedAction; importjava.util.ArrayList; importjava.util.Arrays; importjava.util.Collection; importjava.util.HashMap; importjava.util.LinkedHashMap; importjava.util.LinkedHashSet; importjava.util.List; importjava.util.Map; importjava.util.Set; importjava.util.concurrent.ConcurrentHashMap; importjavax.inject.Provider; importorg.springframework.beans.BeansException; importorg.springframework.beans.FatalBeanException; importorg.springframework.beans.TypeConverter; importorg.springframework.beans.factory.BeanCreationException; importorg.springframework.beans.factory.BeanCurrentlyInCreationException; importorg.springframework.beans.factory.BeanDefinitionStoreExcepti

文档评论(0)

hf916589 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档