Java Spring多个ApplicationContext

前端之家收集整理的这篇文章主要介绍了Java Spring多个ApplicationContext前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Spring ApplicationContext的定义非常模糊,我几乎完成了一整本教程,但仍然无法理解ApplicationContext是什么.

根据Spring API,ApplicationContext是:

  • Central interface to provide configuration for an application. This is read-only while the application is running,but may be reloaded if
    the implementation supports this.

  • The root interface for accessing a Spring bean container. This is the basic client view of a bean container.

从上面我的问题是:

1)我看到书中提到的“容器”,容器是指什么?一个容器是否意味着一个java进程?或一个容器是指一个ApplicationContext对象?

2)如果我在一个java应用程序(在主体中)实例化两个ApplicationContext,这两个接口是否是一个中央容器?还是两个独立的实例?看下面的代码,context1和context2有什么区别?如果Beans.xml中有一个Singleton,它由context1和context2调用,它们是两个分离的实例还是相同的实例?

ApplicationContext context1 = new ClassPathXmlApplicationContext("Beans.xml");
ApplicationContext context2 = new ClassPathXmlApplicationContext("Beans.xml");

非常惊讶的是,我找不到任何文件来澄清这个非常基本的歧义,如果你的答案是从某个地方提到的,请说明,我渴望阅读,迫不及待要完全理解这个概念.

解决方法

通过容器,它们指的是核心弹簧 Inversion of Control container.容器提供了一种通过使用 reflection初始化/引导应用程序(加载xml文件或注释中的配置)的方法,并管理Java对象的生命周期,这些对象称为bean或管理对象.

在这个初始阶段,您在应用程序中没有(通常是可能的)控制,而是在引导完成时(或者没有,如果它失败),您将获得应用程序的完全初始化状态.

所谓的EJB3容器是一种替代或者可能的补充,但是Spring提供的一个没有遵守EJB定义的标准.历史上,EJB的采用受到该规范的复杂性的限制,Spring是一个新创建的项目,用于在J2SE jvm上运行EJB3类似的功能,并且没有EJB容器,并且配置更加简单.

ApplicationContext(作为interface,通过直接实现风格)是实现此IoC容器的意思,而不是beanfactory,而beanfactory现在(一个稀疏使用的)和more direct way管理bean,从而提供了基本的实现ApplicationContext的功能.

根据您的第二个问题,您可以拥有ApplicationContext的多个实例,在这种情况下,它们将完全隔离,每个都具有自己的配置.

猜你在找的Java相关文章