关于spring:什么是bean,IoC和DI?

What is a bean, IoC and DI?

我最近开始学习Spring,开始阅读并与Bean、IOC和DI会面,我不太了解它们是如何工作的,我自己写了一些现成的Spring程序,但是IOC在那里的工作方式我不明白什么是正常的课程,它是什么?)你能用简单的例子解释一下吗?我很乐意回答所有的问题,非常感谢


这里有一个快速的解释,因为你已经提出了一个申请。这是在一个Spring应用程序的上下文中进行的,因为这三个概念的应用方式不同,具体取决于您所处的框架/上下文。

国际奥委会控制权倒置。这意味着应用程序不会管理它的生命周期/控制流本身。框架(弹簧)将。因此,您只需告诉框架您希望应用程序的(某些)元素如何协同工作。

DI是依赖注入。它是一种特定的IOC,框架将在其中管理对象使用的依赖项(可以称为依赖项:服务)。

bean是由框架管理的对象。

以下是applicationContext.xml的一部分:

1
2
3
4
5
6
7
8
9
10
 <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>

它将使用这个文件来声明类FooBarBaz,并将BarBaz的实例都注入Foo中。因此,这些实例是由Spring(IOC)管理的Beans

如果您需要一个bean(一个服务),就必须询问框架(使用类似于context.getBean(foo)):您不应该在任何地方执行new Foo()。Spring保留了所有这些实例的内部映射。

同样,它是在一个Spring应用程序的上下文中。例如,如果您使用的是JEE应用程序,那么这些定义将略有不同。