简明扼要谈Spring IOC的好处
IOC:控制反转,它是不是什么技术,它是一种设计模式。所谓控制反转就是由容器控制程序间的关系,而不是传统实现中,由编程代码直接操控。说白了就是由容器控制对象间的依靠关系。
DI:Dependency Injection 依靠注入 ,即组件(对象)之间的依靠关系由容器在运行期间决定。其实依靠注入和控制反转是对同一概念的不同描述。
Spring通过这种控制反转(IoC)的设计模式促进了松耦合。当应用了IoC,一个对象依靠的其它对象会通过被动的方式传送进来,而不是这个对象自己创建或者查找依靠对象。不是对象从容器中查找依靠,而是容器在对象初始化时不等对象请求就主动将依靠传送给它。我们可以把IoC模式看做是工厂模式的升华,可以把IoC看作是一个大工厂,只不过这个大工厂里要生成的对象都是在XML文件中给出定义的,然后利用Java的“反射”编程,根据XML中给出的类名生成相应的对象。从实现来看,IoC是把以前在工厂方法里写死的对象生成代码,改变为由XML文件来定义,也就是把工厂和对象生成这两者独立分隔开来,目的就是提高灵活性和可维护性。
其实控制反转就是不需要我们手动new一个对象了,它把我们所要实例化的对象都写在了配置文件xml中了,一般这个类都是我们应用的业务类(Business Object)。框架内部已经将xml中配置的类自动实例化成对象,当我们调用某个类A,并且这个类中存在另一个类B时,我们就说A依靠于B,容器就会将B对象注入到A类中,大多数情况下都是通过A类中的setB()方法注入进来的。以前是由类中的代码查找类并new对象,现在是xml文件控制的对象的生成,控制权由程序代码转移到了xml文件中。这样做还是有好处的,假如在A中需要5个对象,那么A类中就会new5个对象,不管以后A中用不用到这5个类,只要用到A类,就会把这5个类全部new出来。假如我们在xml文件中定义类的话,当类需要用到其中的三个类时,就会用对应的set类()方法将对象注入进来,不用的就不注入进来,由此看来,第一个方法时将类A和5个类紧紧联系起来,不管用不用到5个类都new一下,真浪费,而第二个方法是第一个类你需要我的时候我就注入进来被你用,你不需要就和我没关系。这样类A和其中的5个类是分别独立的互不干预,当有关系的时候,容器自动注入关系。没关系的时候,你是老大,我也是大哥!
分享到:
相关推荐
每个主题下,作者提供了简明扼要的解释和示例,帮助读者掌握每个概念并能够解答可能出现的认证考试问题。尽管内容精炼,但书中并未包含所有详细信息,建议读者结合官方文档和其他资源深入学习。 最后,作者提醒,...
【描述】虽然描述中仅提到"pring入门共4页.pdf.zip",但我们可以推测这可能是一个简明扼要的Spring教程,旨在帮助初学者快速了解Spring框架的基本概念和用法。通常,这样的入门教程会涵盖以下几个关键知识点: 1. *...
- 简明扼要地介绍了XFire的组件和工作流程,这对于理解和优化Web Service的性能至关重要。 8. **实践应用**: - 通过实例演示如何在Spring项目中创建、发布、调用和测试Web Service,以及如何应用WS-Security策略...
* 简明扼要:抓住重点,不相关的内容可以写但是要削弱 二、简历排版顺序 * 个人信息 * 求职意向 * 自我评价 * 工作经验 * 专业技能 * 教育经历 * 实习经验 * 培训经验 三、专业技能 * J2EE 项目开发经验 * Java ...
7. PPT材料:可能是毕业答辩时使用的演示文稿,简明扼要地展示了项目的关键点,如系统架构、主要功能和成果展示。 10221140_体育场馆预定网站_123.zip可能是一个更早期的版本或者相关资料,包含了项目的一部分源...
- **项目描述**:简明扼要地介绍项目的背景、目标和最终成果。 - **技术选型**:说明项目中使用的主要技术和工具。 - **个人贡献**:突出自己在项目中的具体贡献和所扮演的角色。 **3.2 项目难点与解决方案** - **...
- **自我评价**: 应简明扼要地总结自己的技术优势和个人品质。 - **奖项**: 如获得过相关竞赛奖项,应在简历中明确列出,这有助于提升个人形象。 综上所述,一份成功的Java软件开发工程师简历不仅需要包含个人基本...