spring父上下文和子上下文之间有什么区别?

我正在阅读spring doc,我想了解在注入协作者时

的目的的核心容器,然后我发现了父上下文子上下文或父容器和当前容器的概念,这是我对此感到困惑的

部分:文档

通过parent属性指定目标bean将创建对当前容器的父容器中bean的引用。父属性的值可以与目标Bean的id属性相同,也可以与目标Bean的名称属性中的值相同,并且目标Bean必须位于当前容器的父容器中。主要在具有容器层次结构并且要使用代理将现有bean封装在父容器中时使用此bean参考变量,该代理将具有与父bean相同的名称。

<!-- in the parent context -->

<bean id="accountService" class="com.foo.SimpleAccountService">

<!-- insert dependencies as required as here -->

</bean>

<!-- in the child (descendant) context -->

<bean id="accountService" <!-- bean name is the same as the parent bean -->

class="org.springframework.aop.framework.ProxyFactoryBean">

<property name="target">

<ref parent="accountService"/> <!-- notice how we refer to the parent bean -->

</property>

<!-- insert other configuration and dependencies as required here -->

</bean>

有人可以给我一些帮助或这两种情况的例子吗?什么是目的 预先感谢您

回答:

Spring的bean在应用程序上下文中运行。

Application

Context是Spring的高级容器。与BeanFactory相似,它可以加载Bean定义,将Bean连接在一起,并根据请求分配Bean。此外,它增加了更多企业特定的功能,例如从属性文件解析文本消息的功能以及将应用程序事件发布到感兴趣的事件侦听器的功能。该容器由org.springframework.context.ApplicationContext接口定义。

https://www.tutorialspoint.com/spring/spring_applicationcontext_container.htm

对于每个应用程序上下文,您可以具有许多配置文件,配置类或两者的混合。

您可以使用以下代码创建应用程序上下文:

ApplicationContext context = new FileSystemXmlApplicationContext("Beans.xml");

并与context.getBean或一起获得豆@autowired

在某些情况下,您希望(或需要)具有上下文层次结构。在这些情况下,Spring提供了一种指定父上下文的方法。如果查看此构造函数,您将看到它收到一个上下文父级。

http://docs.spring.io/spring/docs/current/javadoc-

api/org/springframework/context/support/FileSystemXmlApplicationContext.html#FileSystemXmlApplicationContext-

org.springframework.context.ApplicationContext-

如您所见,父上下文是子上下文的相同类型,它们都是http://docs.spring.io/spring/docs/current/javadoc-

api/org/springframework/context/ApplicationContext.html。

区别在于它们通过父母/子女关系建立联系。不是撰写(导入)关系。

最常见的情况是在Spring MVC应用程序中,该应用程序有2个上下文,第一个是调度程序Servlet上下文,另一个是根上下文。在这里,您可以看到关系

http://docs.spring.io/spring/docs/3.0.x/spring-framework-

reference/html/mvc.html#mvc-

servlet

在这里,您可以看到Spring Boot应用程序中应用程序上下文层次结构的示例。

https://dzone.com/articles/spring-boot-and-application-context-

hierarchy

以上是 spring父上下文和子上下文之间有什么区别? 的全部内容, 来源链接: utcz.com/qa/417042.html

回到顶部