- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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?网上有两种
您可能关注的文档
- 迁移的实时查询和分片的断点续迁.docx
- CMMI JXBW-PD-0303Java编码规范文档.pdf
- 软件需求最佳实践:SERU用户需求说明书模板.docx
- 数据治理寻求未来:平衡数据治理和数据管理.docx
- 边缘智能认知与应用实践 -时晓厚.pdf
- 2024年度领导干部个人专题民主生活会、组织生活会对照检查材料(四个带头)和意见建议汇总.docx
- 在2025年国企纪检监察工作会议上的报告材料.docx
- 领导干部2024年民主生活会、组织生活会对照检查发言材料(四个带头).docx
- 市税务局分管领导2024年度民主生活会个人对照检查检视发言材料多篇.docx
- 财务部主任、公安局、审计局等2024年组织生活会个人对照检查发言材料合集.docx
- 市直机关工委及个人述职述廉2024年党建工作情况报告材料.docx
- 区委书记在2025年一季度经济运行部署会议上的讲话发言材料.docx
- 市直机关单位、卫健委党支部2024年工作述职报告材料.docx
- 市委副书记、市长在2025年市委城乡规划委员会第一次会议上的讲话发言材料.docx
- 某单位领导干部2024年生活会、组织生活会对照检查材料(对照“四个带头”).docx
- 2024年民政局、宣传部、教育局基层主要领导个人述责述廉报告材料.docx
- 2025年2月党支部“三会一课”参考主题方案.docx
- 在某中学2025年春季开学典礼上的讲话:以“三重境界”燃动新学期.docx
- 2024年度领导干部专题民主生活会、组织生活会对照检查材料(四个带头)及学习研讨会上的发言材料.docx
- 市纪委市监委2025年度纪检监察工作计划.docx
文档评论(0)