对象容器Spring核心iocStrut2教程-java教程
2013-05-01 23:24
507 查看
在写这篇文章之前,xxx已经写过了几篇关于改对象容器主题的文章,想要了解的朋友可以去翻一下之前的文章
IoC,Inversion Of Control 即制控转反,由容器来管理务业对象之间的赖依关系,而非传统方法中的由代码来管理。
其本质,即将制控权由应用程序代码转到了外部容器,制控权的转移就是所谓的转反,其带来的大最的处好是降低了务业对象之间的赖依度程,即实现了解耦。
Spring的IoC容器重要应用DI(Dependency Injection,赖依注入)方法实现的。不要需自动查找,对象的查找、位定和创立部全由容器管理,容器会将合符赖依关系的对象通过性属(setter等)或者构造函数传递给要需的对象。
应用IoC可以带来以下处好:
1、询查赖依操作和应用代码分离,量大减少了Factory和Singleton的量数,使代码层次更加清晰,重要原因是我们不再查找、位定、创立和管理对象之间的赖依关系了,都交给IoC容器管理了
2、没有侵入性,不要需赖依容器的API,也不要需实现一些特别接口。这样我们的受控对象可以搬出容器进而独单应用。
3、可以从IoC容器中直接取得一个对象然后直接应用,而无需斟酌对象的创立程过。(厂工模式)
从网上看了一个例子,认为不错,贴过来帮助我们懂得:
每日一道理
即使青春是一枝娇艳的花,但我明白,一枝独放永远不是春天,春天该是万紫千红的世界。 即使青春是一株大地伟岸的树,但我明白,一株独秀永远不是挺拔,成行成排的林木,才是遮风挡沙的绿色长城。即使青春是一叶大海孤高的帆,但我明白,一叶孤帆很难远航,千帆竞发才是大海的壮观。
我们是如何找女朋友的?见常的情况是,我们到处去看哪里有长得亮漂材身又好的mm,然后探听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法识认她们,投其所好送其所要,然后嘿嘿……这个程过是杂复奥深的,我们必须自己计设和对面每一个环节。传统的程序开发也是如此,在一个对象中,如果要应用另外的对象,就必须失掉它(自己new一个,或者从JNDI中询查一个),应用完后之还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。 那么IoC是如何做的呢?有点像通过婚介找女朋友,在我和女朋友之间引入了一个者三第:婚姻介绍所。婚介管理了很多男男女女的资料,我可以向婚介提出一个列表,告知它我想找个什么样的女朋友,比如长得像李嘉欣,材身像林熙雷,唱歌像周杰伦,度速像卡洛斯,技巧像齐达内之类的,然后婚介就会按照我们的要求,供提一个mm,我们只要需去和她谈恋爱、完婚了行就。简单明了,如果婚介给我们的人选不合符要求,我们就会抛出异常。整个程过不再由我自己制控,而是有婚介这样一个似类容器的机构来制控。Spring所导倡的开发方法就是如此,部全的类都会在spring容器中记登,告知spring你是个什么西东,你要需什么西东,然后spring会在统系运行到恰当的时候,把你要的西东自动给你,同时也把你交给其他要需你的西东。部全的类的创立、销毁都由 spring来制控,也就是说制控对象生存周期的不再是引用它的对象,而是spring。对于某个详细的对象而言,之前是它制控其他对象,现在是部全对象都被spring制控,所以这叫制控转反
其实,我们可以把IoC看作是厂工模式的升华,IoC好比是一个大厂工,只不过在这个大厂工里成生的对象都是在XML文件中义定的,然后利用Java的射反实例化。在没有Spring之前我们也是这么做的,只是Spring的IoC更加壮大完善。
利有就有毙,IoC也有定一的弊病:
1、应用射反酿成,在效率上有些损耗。
2、缺少更加智能的IDE,写XML中时,错误不容易暴露,推迟到运行期才能发明。
但于对相IoC进步的维护性和灵活性说来,这点点缺又显得眇乎小哉
写到最后,忽然想到《走遍美国》里,唱片公司制片在rebaca制录完唱片后对她说的一句话:Don't call us,we'll call you
用这句话来描述IoC再适合不过。
文章结束给大家分享下程序员的一些笑话语录:
AdobeFlash拖垮Windows拖垮IE!又拖垮Linux拖垮Ubuntu拖垮FirxEox!还拖垮BSD拖垮MacOS拖垮Safri!简直无所不拖!AdobeFlash滚出网路世界!不要以为市占有率高就可以持续出烂货产品!以后替代品多得是!
IoC,Inversion Of Control 即制控转反,由容器来管理务业对象之间的赖依关系,而非传统方法中的由代码来管理。
其本质,即将制控权由应用程序代码转到了外部容器,制控权的转移就是所谓的转反,其带来的大最的处好是降低了务业对象之间的赖依度程,即实现了解耦。
Spring的IoC容器重要应用DI(Dependency Injection,赖依注入)方法实现的。不要需自动查找,对象的查找、位定和创立部全由容器管理,容器会将合符赖依关系的对象通过性属(setter等)或者构造函数传递给要需的对象。
应用IoC可以带来以下处好:
1、询查赖依操作和应用代码分离,量大减少了Factory和Singleton的量数,使代码层次更加清晰,重要原因是我们不再查找、位定、创立和管理对象之间的赖依关系了,都交给IoC容器管理了
2、没有侵入性,不要需赖依容器的API,也不要需实现一些特别接口。这样我们的受控对象可以搬出容器进而独单应用。
3、可以从IoC容器中直接取得一个对象然后直接应用,而无需斟酌对象的创立程过。(厂工模式)
从网上看了一个例子,认为不错,贴过来帮助我们懂得:
每日一道理
即使青春是一枝娇艳的花,但我明白,一枝独放永远不是春天,春天该是万紫千红的世界。 即使青春是一株大地伟岸的树,但我明白,一株独秀永远不是挺拔,成行成排的林木,才是遮风挡沙的绿色长城。即使青春是一叶大海孤高的帆,但我明白,一叶孤帆很难远航,千帆竞发才是大海的壮观。
我们是如何找女朋友的?见常的情况是,我们到处去看哪里有长得亮漂材身又好的mm,然后探听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法识认她们,投其所好送其所要,然后嘿嘿……这个程过是杂复奥深的,我们必须自己计设和对面每一个环节。传统的程序开发也是如此,在一个对象中,如果要应用另外的对象,就必须失掉它(自己new一个,或者从JNDI中询查一个),应用完后之还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。 那么IoC是如何做的呢?有点像通过婚介找女朋友,在我和女朋友之间引入了一个者三第:婚姻介绍所。婚介管理了很多男男女女的资料,我可以向婚介提出一个列表,告知它我想找个什么样的女朋友,比如长得像李嘉欣,材身像林熙雷,唱歌像周杰伦,度速像卡洛斯,技巧像齐达内之类的,然后婚介就会按照我们的要求,供提一个mm,我们只要需去和她谈恋爱、完婚了行就。简单明了,如果婚介给我们的人选不合符要求,我们就会抛出异常。整个程过不再由我自己制控,而是有婚介这样一个似类容器的机构来制控。Spring所导倡的开发方法就是如此,部全的类都会在spring容器中记登,告知spring你是个什么西东,你要需什么西东,然后spring会在统系运行到恰当的时候,把你要的西东自动给你,同时也把你交给其他要需你的西东。部全的类的创立、销毁都由 spring来制控,也就是说制控对象生存周期的不再是引用它的对象,而是spring。对于某个详细的对象而言,之前是它制控其他对象,现在是部全对象都被spring制控,所以这叫制控转反
其实,我们可以把IoC看作是厂工模式的升华,IoC好比是一个大厂工,只不过在这个大厂工里成生的对象都是在XML文件中义定的,然后利用Java的射反实例化。在没有Spring之前我们也是这么做的,只是Spring的IoC更加壮大完善。
利有就有毙,IoC也有定一的弊病:
1、应用射反酿成,在效率上有些损耗。
2、缺少更加智能的IDE,写XML中时,错误不容易暴露,推迟到运行期才能发明。
但于对相IoC进步的维护性和灵活性说来,这点点缺又显得眇乎小哉
写到最后,忽然想到《走遍美国》里,唱片公司制片在rebaca制录完唱片后对她说的一句话:Don't call us,we'll call you
用这句话来描述IoC再适合不过。
文章结束给大家分享下程序员的一些笑话语录:
AdobeFlash拖垮Windows拖垮IE!又拖垮Linux拖垮Ubuntu拖垮FirxEox!还拖垮BSD拖垮MacOS拖垮Safri!简直无所不拖!AdobeFlash滚出网路世界!不要以为市占有率高就可以持续出烂货产品!以后替代品多得是!
相关文章推荐
- 理解Java Spring核心功能之一:控制反转容器(IOC Container)
- Spring的核心之IoC容器创建对象
- Spring的核心之IoC容器创建对象
- 动态获取Spring IOC容器实例化对象
- spring之IOC容器创建对象
- 打破Java定律:无需创建对象--Ioc容器革命-Java基础-Java-编程开发
- Spring IOC 容器如何调用 对象的 set 和构造方法的
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- Spring.Net学习笔记四(IOC容器对象的作用域)
- SpringIOC容器-对象依赖
- 不明觉厉的spring(2)---spring核心容器及ioc
- Spring核心容器的详细解析以及IOC和DI和过程全解
- spring之IOC容器创建对象
- Spring 核心之 Ioc容器实现
- Spring IOC容器启动核心
- Spring源码剖析——核心IOC容器原理
- Spring系列之-Spring IOC容器设计:Spring实例化对象
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- java 从spring容器中获取注入的bean对象
- Spring核心框架之IoC容器 推荐