Delegate parent environment to child app contexts
Calls to AbstractApplicationContext#setParent delegate the parent context environment to the child. This ensures that any property sources added to the parent are available to the child as well as ensuring that any profiles activated are activated everywhere. Child contexts may still choose to replace their environment (through an ApplicationContextInitializer, for example). In any case, however, in the root/child web application context relationship established by ContextLoader + DispatcherServlet, the child is guaranteed to have already been given the parent environment by the time it is delegated to any ACIs. See AbstractApplicationContext#setParent for implementation See FrameworkServlet#createWebApplicationContext for order in which setParent then initializeWebApplicationContext are called. Issue: SPR-8185
This commit is contained in:
@@ -87,6 +87,15 @@ public abstract class AbstractRefreshablePortletApplicationContext extends Abstr
|
||||
setDisplayName("Root PortletApplicationContext");
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* <p>The parent {@linkplain #getEnvironment() environment} is
|
||||
* delegated to this (child) context if the parent is a
|
||||
* {@link ConfigurableApplicationContext} implementation.
|
||||
* <p>The parent {@linkplain #getServletContext() servlet context} is
|
||||
* delegated to this (child) context if the parent is a {@link WebApplicationContext}
|
||||
* implementation.
|
||||
*/
|
||||
@Override
|
||||
public void setParent(ApplicationContext parent) {
|
||||
super.setParent(parent);
|
||||
|
||||
@@ -84,6 +84,15 @@ public class StaticPortletApplicationContext extends StaticApplicationContext
|
||||
this.portletContext, this.portletConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* <p>The parent {@linkplain #getEnvironment() environment} is
|
||||
* delegated to this (child) context if the parent is a
|
||||
* {@link ConfigurableApplicationContext} implementation.
|
||||
* <p>The parent {@linkplain #getServletContext() servlet context} is
|
||||
* delegated to this (child) context if the parent is a {@link WebApplicationContext}
|
||||
* implementation.
|
||||
*/
|
||||
@Override
|
||||
public void setParent(ApplicationContext parent) {
|
||||
super.setParent(parent);
|
||||
|
||||
Reference in New Issue
Block a user