IOC容器到底是什么

hailun 2008-01-25 10:24:54
大多书上都说IOC容器怎么怎么用,IOC容器能干什么
但这个IOC容器是什么却没有说明...

今天GOOGLE了几页也是都说IOC能干什么
QQ群里也问了,还被他人给BS了(郁闷,BS人很爽吗?)

所以来求助,想了解一下这个IOC容器是什么,怎么理解

谢谢
...全文
11765 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingqingcao22009 2012-10-22
  • 打赏
  • 举报
回复
LZ的意思好像是知道IOC是控制反转和依赖注入的意思,不太清楚IoC容器到底是什么?不知道理解的对不对?我也是这个问题,IoC容器是什么?不是问IoC是什么?
匿名旅途 2012-06-28
  • 打赏
  • 举报
回复
亲 好莱坞原则? 有这玩意? [Quote=引用 2 楼 的回复:]

ioc特性介绍:
http://www.jdon.com/AOPdesign/iocimpls.htm

IOC的机制是:---处理类之间和接口之间或类与接口之间关联关系,根据好莱坞原则,调用着与被调用者的主次关系,实现开关的原则.类之间可以很好(甚至)可以完全避免耦合,一个类只负责自己逻辑功能代码,如果想调用其它类告诉IOC容器去做(一种比较好的方式是根据配置文件来设定复杂关系),而不需……
[/Quote]
我非上帝 2012-03-09
  • 打赏
  • 举报
回复
tomcat容器 servlet容器 jsp容器 你懂得...
a514329139 2012-03-02
  • 打赏
  • 举报
回复
Please be aware that Spring Actionscript's concept of a singleton object is quite different from the Singleton pattern as defined in the seminal Gang of Four (GoF) patterns book. The GoF Singleton hard codes the scope of an object such that one and only one instance of a particular class will ever be created. The scope of the Spring Actionscript singleton is best described as per container and per object. This means that if you define one object for a particular class in a single Spring Actionscript container, then the Spring Actionscript container will create one and only one instance of the class defined by that object definition. The singleton scope is the default scope in Spring Actionscript. To define an object as a singleton in XML, you would write configuration like so:

Spring 的单例与单例设计模式不同之处就是:
前者一个容器一个对象,后者始终一个对象,

IOC容器肯定是Spring容器的一部分,所以初始化一个Spring容器 就等同于初始化了IOC

AbstractApplicationContext ctx = new ClassPathXMLApplicationContext();....手写可能有误java的

var ctx:ApplicationContext =new ApplicationContext();//spring actionscript的



new多次就等同于有多个IOC容器了


cabcab.cab 2011-03-15
  • 打赏
  • 举报
回复
一个jvm 可以有几个ioc容器吗? 举例看看
cabcab.cab 2011-03-15
  • 打赏
  • 举报
回复
http://www.easy518.com/
untraYahooEmail 2011-03-12
  • 打赏
  • 举报
回复
学习。。。
software061104 2009-09-19
  • 打赏
  • 举报
回复
严重同意2楼
pxcong007 2008-12-09
  • 打赏
  • 举报
回复
控制翻转 依赖注入
根据本人理解: 感觉依赖注入这个名字贴切。
代码运行在容器中, 由容器来完成代码运行时所依赖对象的生成。
ping17909 2008-02-13
  • 打赏
  • 举报
回复
在百度中搜索"向依赖关系宣战";
这是一篇非常不错的文章。
zero1111 2008-02-13
  • 打赏
  • 举报
回复
要想了解 依赖注入和反转控制,建议看一下设计模式.这样会清楚些.
linpyi 2008-02-13
  • 打赏
  • 举报
回复
依赖注入和反转控制
是spring的核心

1.java实例的调用者创建被调用的java实例,调用者直接new关键字创建被调用实例,程序高度耦合
2.调用者无需关心被调用者的具体实现过程,只需要找到符合某种标准的实例,即可使用,此时调用的代码面向接口编程,可以让调用者和被调用者解耦合,是是工厂模式大量使用的原因.但是调用者需要自己定位工厂,调用者和工厂耦合在一起
3.最理想的情况,程序完全无需要理会被调用者的实现,也无须定位工厂,是最好的解耦合的方法,实例之间的依赖关系由容器提供.
也就是靠spring来管理,用配制文件来管理实例直接的关系,如果遇到某个需要修改的需求,只需要修改相应的配制文件,而不需要修改每个类中对相应需要修改类的方法的实例话



现在开始面向接口编程,减少各个层之间的耦合
先创建一个接口
再创建一个类继承接口
在spring的xml对相应的类进行配制
//这是struts+spring的例子,随便写的
底下的ref指向配制文件中另外一个声明类
<bean name="/login"
class="com.ccsee.em.struts.action.login.UserLoginAction">
<property name="userS" ref="userInfoService" />
<property name="popedomS" ref="popedomService" />
</bean>
<bean id="userInfoService"
class="com.ccsee.em.service.impl.UserInfoServiceImpl">
<property name="userDao" ref="userDao" />
</bean>
这是action中的代码,初始话相应的接口,UserInfoService 是一个接口,通过配制文件指向相应的类
private UserInfoService userS;

public void setUserS(UserInfoService userS) {
this.userS = userS;
}
以前下的时候要想使用,service层中的UserInfoService的方法就必须,先初始话
UserInfoService userS = new UserInfoServiceImpl();
才能使用userS.***方法,这样如果UserInfoServiceImpl中的方法需要更改,你需要改动的地方就是,程序中所有UserInfoService userS = new UserInfoServiceImpl();

都需要修改

现在 private UserInfoService userS;

public void setUserS(UserInfoService userS) {
this.userS = userS;
}
这是设值注入,只要在相应的类和配制文件中进行初始话,就把2个类连接起来,
说的乱七八糟,自己学spring一个月,也就懂这些,
一个设值注入一个构造注入,通过配制文件来连接各层之间的关系
spring不止这些,对一些权限控制和事务控制有自己的处理方法,不知道我说的对不对
初学,个人认为spring的ioc在解耦合方面发挥重要作用吧,其他的不清楚,慢满研究.
自己转晕了,一起学习

wx2007 2008-01-31
  • 打赏
  • 举报
回复
一句话主要是为了解耦类之间的依赖关系~~!
Leen_fang 2008-01-30
  • 打赏
  • 举报
回复
Spring 的核心:控制反转
zhunzhunzhun_sky 2008-01-30
  • 打赏
  • 举报
回复
IOC是一种机制,一种原理——spring称它为控制反转

至于你说得你说得IOC容器,是不是可以理解为IOC实现好些?
擒兽 2008-01-30
  • 打赏
  • 举报
回复
我发现,我上面用文字表达的内容估计看的人要骂人。

这个东西还是面对面,代码对代码,一步一步口头说明好点。 楼主祝你好运。
擒兽 2008-01-30
  • 打赏
  • 举报
回复
Spring就是一个IOC容器 负责ORM

上下层次之间没多大关系,又Spring框架通过Spring配置文件构造对象注入到相关的类里面去,实际上是Spring负责对象实例化,并将有关系的对象注入到对象内。前面说注入到类内比较容易理解一点。
sonstar88 2008-01-30
  • 打赏
  • 举报
回复
不是真正的反转哟
cn12592 2008-01-25
  • 打赏
  • 举报
回复
我也不懂,说说个人理解.理解能力有限,希望各位大虾别拿砖拍我.

Spring里的IOC又叫控制反转,也就是说通过配置文件在WEB工程启动时,将需要的类或接口的对象加载,
并在需要使用时调用.
xql80329 2008-01-25
  • 打赏
  • 举报
回复
Spring 的核心
加载更多回复(3)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧