如何创建Spring容器?

And*_*ili 7 java spring spring-mvc

我正在考虑Spring Core认证,我对这个问题有以下疑问:

什么是"容器",你如何创建一个?

我知道Spring容器是Spring Framework的核心.容器将创建对象,将它们连接在一起,配置它们,并管理从创建到销毁的整个生命周期.Spring容器使用依赖注入(DI)来管理组成应用程序的组件.这些对象称为Spring Beans,我们将在下一章中讨论.

我知道存在2个容器:

  • Spring BeanFactory容器:这是最简单的容器,为DI提供基本支持,并由org.springframework.beans.factory.BeanFactory接口定义.BeanFactory和相关接口(如BeanFactoryAware,InitializingBean,DisposableBean)仍然存在于Spring中,目的是向后兼容与Spring集成的大量第三方框架.

  • Spring ApplicationContext容器:此容器添加更多特定于企业的功能,例如从属性文件解析文本消息的功能以及将应用程序事件发布到感兴趣的事件侦听器的功能.此容器由org.springframework.context.ApplicationContext接口定义.

好的...这对我来说非常清楚,但关于如何创建容器的正确答案是什么

我认为它是Spring在读取配置类或XML配置文件时自动创建的.

或不?我错过了什么?

And*_*res 5

简而言之,"容器"是一个负责管理bean生命周期的Spring实例.

要创建一个,基本上,你应该做一些事情

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/application-context.xml");
Run Code Online (Sandbox Code Playgroud)

请记住用您定义自己的Spring bean的文件替换/application-context.xml.

请查看http://www.springbyexample.org/examples/intro-to-ioc-creating-a-spring-application.html

您也可以用配置类替换xml.在这种情况下你应该有这样的事情:

@Configuration
public class Myconfig{

   @Bean 
   public MyBean myBean(){
      return new MyBean();
   }
}
Run Code Online (Sandbox Code Playgroud)

为此,请查看http://www.tutorialspoint.com/spring/spring_java_based_configuration.htm

  • @AndreaNobili总会有一些东西最终会实例化一个`XXXApplicationContext`(基于Java配置的注释).它可以是你(如@Andres所做),它可以是Servlet容器(带有webpp监听器或基于Spring的Servlet),它可以是一个框架(Apache CXF就是这样),但最终会有一些东西会创建它`ApplicationContext`的实例 (4认同)