Exposing beans or components is making them available for other modules.
There are several ways to expose beans, but in most cases it is done by annotating the bean or its implementing class with
Beans are exposed by pushing a special
BeanDefinition as far up the
ApplicationContext hierarchy as possible. Exposing beans has no impact on the number of bean instances that will get created, it simply makes them visible in the parent
All modules have the same parent
ApplicationContext, so bean definitions in the parent are available to all modules.
See the reference documentation on Exposing beans for more details.