我最近开始学习Spring,开始阅读并与bean,ioc和di会面,我不太了解它们的工作方式,我编写了自己编写的现成的spring程序,但是ioc是如何工作的,我没有了解普通班级的区别是什么?)您能用简单的例子解释一下吗?我将很高兴收到所有答复,非常感谢您
答案 0 :(得分:3)
这里已经做了一个快速的解释,因为您已经申请了。这是在Spring应用程序的上下文中,因为这3个概念根据您所使用的框架/上下文的不同而适用。
IOC是控制反转。这意味着应用程序本身将无法管理其生命周期/控制流。框架(Spring)将。因此,您只需告诉框架您希望应用程序的(某些)元素如何协同工作即可。
DI是依赖注入。这是一种特殊的IOC,框架将管理对象使用的依赖项(您可以将依赖项称为服务)。
Bean是由框架管理的对象。
这是applicationContext.xml的一部分:
<beans>
<bean id="foo" class="x.y.Foo">
<constructor-arg ref="bar"/>
<constructor-arg ref="baz"/>
</bean>
<bean id="bar" class="x.y.Bar"/>
<bean id="baz" class="x.y.Baz"/>
</beans>
将使用此文件实例化Foo
,Bar
和Baz
(IoC)类,并注入这两个{{1} }和Bar
转换成Baz
(DI)。因此,这些实例是Foo
,由Spring(IoC)管理。
如果您需要bean(服务),则必须询问框架(使用类似Beans
的东西):您不应该在任何地方做context.getBean(foo)
。 Spring会保留所有这些实例的内部映射。
同样,它是在Spring应用程序的上下文中。例如,如果您使用的是JEE应用程序,这些定义将稍有不同。