The full picture
- What the context adds concretely: BPP/BFPP auto-registration (BeanFactory requires manual wiring of them!),
MessageSource,ApplicationEventPublisher,Environment/profiles, resource loading (classpath:), and startup-time failure of misconfigured singletons. - Hierarchy semantics: child looks up parent for missing beans; component scan does not cross upward; events don't propagate down; each child can override parent definitions locally.
- Where you still meet it: classic
ContextLoaderListenerroot +DispatcherServletchild; Spring Cloud Config's bootstrap parent; test slices building trimmed contexts; frameworks like Spring Batch creating step-scoped child-ish contexts. - Multiple independent contexts in one JVM: plugin isolation (each plugin its own context + classloader), embedding Spring in a larger app, or module-per-context modular monolith experiments (Spring Modulith took the lighter path instead).