网站大量收购独家精品文档,联系QQ:2885784924

Spring如何实现IOC与AOP的.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

文章分类:Java编程

1、SpringIOC

????IoC?与?DI

?首先想说说?IoC?(?InversionofControl?,控制倒转)。这是?spring?的核心,贯穿始终。所谓?IoC?,对于?spring?框架来说,就是由?spring?来负责控制对象的生命周期和?对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的?mm?,然后打听她们的兴趣爱?好、?qq?号、电话号、?ip?号、?iq?号?………?,想办法认识她们,投其所好送其所要,然后嘿嘿?……?这个过程是复杂深奥的,我们必须自己设计和面对每个环节。传?统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己?new?一个,或者从?JNDI?中查询一个),使用完之后还要将对象销毁(比?如Connection?等),对象始终会和其他的接口或类藕合起来。

那么?IoC?是如何做的呢?有点像通过婚介找女朋友,在我和女朋友之间引入了一个第三者:婚姻介绍所。婚介管理了很多男男女女的资料,我可以向婚?介提出一个列表,告诉它我想找个什么样的女朋友,比如长得像李嘉欣,身材像林熙雷,唱歌像周杰伦,速度像卡洛斯,技术像齐达内之类的,然后婚介就会按照我?们的要求,提供一个?mm?,我们只需要去和她谈恋爱、结婚就行了。简单明了,如果婚介给我们的人选不符合要求,我们就会抛出异常。整个过程不再由我自己控?制,而是有婚介这样一个类似容器的机构来控制。?Spring所倡导的开发方式就是如此,所有的类都会在?spring?容器中登记,告诉?spring?你是个什?么东西,你需要什么东西,然后?spring?会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由?spring?来控制,也就是说控制对象生存周期的不再是引用它的对象,而是?spring?。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象?都被?spring?控制,所以这叫控制反转。如果你还不明白的话,我决定放弃。

IoC?的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过?DI?(?DependencyInjection?,依赖注入)来实现的。比如对象?A?需要操作数据库,以前我们总是要在?A?中自己编写代码来获得一个?Connection?对象,有了?spring?我们就只需要告诉?spring?,?A?中需要一个?Connection?,至于这个?Connection?怎么构造,何时构造,?A?不需要知道。在系统?运行时,spring?会在适当的时候制造一个?Connection?,然后像打针一样,注射到?A?当中,这样就完成了对各个对象之间关系的控制。?A?需要依赖?Connection?才能正常运行,而这个?Connection?是由?spring?注入到?A?中的,依赖注入的名字就这么来的。那么?DI?是如何实现的呢??Java1.3?之后一个重要特征是反射(?reflection?),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,?spring?就是通过反射来实现注入的。关于反射的相关资料请查阅?javadoc?。

?

IoC?是一个很大的概念,可以用不同的方式来实现。主要的实现形式有两种?:

依赖查找:容器提供回调接口和上下文环境给组件。?EJB?和?ApacheAvalon?都是使用这种方式。

依赖注入:组件不做定位查询,只是提供普通的?Java?方法让容器去决定依赖关系。容器全权负责组件的装配,它会把符合依赖关系的对象通过?JavaBean?属性或者构造子传递给需要的对象。通过?JavaBean?属性注射依赖关系的做法称为设值方法注入(?SetterInjection?);将依赖关系作为构造子参数传入的做法称为构造子注入(?ConstructorInjection?)。

附图说明:

?

???

到这里,大家应该对?IoC?与?DI?都有了初步的认识了。其实就?Spring?来说,就是?JavaBean?由?Spring?来管理组装,表面上看就少了几个?new?字,其实就是为了降低耦合度,这也是我们做软件的目标之一。

至于?Spring?是怎样实现?IoC?的,?《?expertone-on-oneJ2EEDevelopmentwithoutEJB?中文版》第七章“?Spring?框架介绍”很详细的列举了多种方法。说实在,一下子看这么多,我真有点糊涂了。我还是自己写个?Demo?熟悉一下大名鼎鼎的?Spring?吧。

首先得下载?Spring?。?Spring?网上有两种

您可能关注的文档

文档评论(0)

大大大爷爷⛄️ + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档