如果用通俗易懂的语言让一个完全不懂计算机的人理解你所谓的技术,那么说明你真的懂了。这句话是我曾经的一个师傅告诉我的...

    spring最大的魅力是IOC、AOP这个是业内公认的了..所以,站在巨人的肩膀上,做为菜鸟的我自然就从这两个部分去剖析spring的优美。我们搞技术的同时千万不要忘记我们是有血有肉的人类,不能因为盲目的去实现需求而去搞技术,如果我们搞了n久的spring开发,可我们紧紧停留在spring.jar与beans.xml的话,那真的是spring式的悲剧。

    就我现在这个理解层次上,个人对IOC的解释如下:1、依赖查找:譬如你在饭店,你可以根据菜单去告诉厨房你要点的菜,当厨房将菜做好,你在端菜到自己的位置去吃,这个过程就是依赖查找。2、依赖注入:还是你在饭店,还是你根据菜单去点菜,只不过这次你告诉了服务员你要什么,服务员会用自己的方式搞到你要的菜,放到你的桌子上。

   通过这样的解释可以让我们感觉到依赖注入也许会更方便。

    如果说到依赖注入,那么我们就要先去研究一下springIoc核心的接口:BeanFactory。我个人强烈建议去官网下载spring的源代码,我写这篇文章时用的是3.0.5的release版本的。该接口的部分实现类如下图:spring ioc 学习(1)

spring ioc 学习(1)该接口的方法如图。

而我们最常涉及到的就是其中的继承BeanFactory的ApplicationContext,如果我们这么看:spring ioc 学习(1)

就能看到如果实现了ApplicationContext这个接口的所有类,包含了其继承所有接口的方法。用Spring内部揭秘的比喻,好比这些东西都是用来装水的,当发展到ApplicationContext这个容器的时候,它已经是一个非常适合使用的容器了。让我们看下他得其中一个父接口(我不知道这么称呼对不对哈)ListableBeanFactory其中的一些端倪:spring ioc 学习(1)这个接口在BeanFactory的基础上增加了更多的方法,从其中几个方法的命名中我们可以猜测到BeanDefinition这个词的重要行,还有就是后面几个方法中Annotation,应该是2.5的时候就加入的注释resipotory,个人怀疑是跟注释相关的方法(目前还没有研究到,后续会深入研究)。

    啊!时间飞快,十点了,得回去了。还要一个小时的地铁哦~明天公司年前的最后一次上线!哈哈,要回黑龙江了...老爸老妈我回来啦~

    spring,我生活中的一部分... 春节回来落实街舞!...(哈哈,随意的yy下,希望看到文章的前辈们多多多多的指点)

转载于:https://my.oschina.net/HeroQ/blog/39135

相关文章: