Java Spring多个ApplicationContext
春天的定义ApplicationContext
很模糊,我几乎完成了一整本教程,但仍然不明白它ApplicationContext
代表什么。
根据Spring API,ApplicationContext
是:
中央接口,为应用程序提供配置。在应用程序运行时,它是只读的,但是如果实现支持,则可以重新加载。
用于访问Spring bean容器的根接口。这是bean容器的基本客户端视图。
从上面,我的问题是:
1)我不断看到书中提到的“容器”,容器指的是什么?一个容器意味着一个Java进程吗?或一个容器引用一个ApplicationContext对象?
2)如果我实例化ApplicationContext
一个Java应用程序中的两个(都在main正文中),那么这两个接口是否都指向一个中央容器?还是两个单独的实例?请参阅下面的代码,context1
和之间有什么区别context2
?如果中有一个Singleton Beans.xml
,则由context1
和调用context2
,它们是两个单独的实例还是同一实例?
ApplicationContext context1 = new ClassPathXmlApplicationContext("Beans.xml");ApplicationContext context2 = new ClassPathXmlApplicationContext("Beans.xml");
回答:
容器指的是控制容器的核心弹簧反转。容器提供了一种通过使用反射来初始化/引导应用程序(将配置加载到xml文件或注释中)以及管理Java对象(称为
bean 或 托管对象) 的生命周期的方法。
在此初始阶段,您在应用程序中没有(通常是可以的)控制,而是在完成引导程序后(如果失败则什么也没有),您将获得应用程序的完全初始化状态。
它是对 EJB3容器
的替代或可能的补充。但是,如果没有遵循EJB定义的标准,就会出现问题。从历史上看,EJB的采用受到该规范的复杂性的限制,spring是一个新创建的项目,用于在J2SE
jvm上运行EJB3的可比功能,并且没有EJB容器,并且配置简单得多。
ApplicationContext
(作为接口,并通过直接实现实现)是实现此IoC容器的手段,与相比BeanFactory
,,后者现在(一种稀疏使用的)更直接的方式来管理Bean,该方式提供了基本实现ApplicationContext的功能。
关于第二个问题,您可以有多个ApplicationContexts实例,在这种情况下,它们将完全隔离,每个实例都有自己的配置。
以上是 Java Spring多个ApplicationContext 的全部内容, 来源链接: utcz.com/qa/432944.html