With the introduction of OSGI (and Spring Dynamic Modules) Java developers get the advantage of module a based architecture. However, there are cases where you might/can not use an OSGI based architecture. There is a simple "poorman's" substitute to using OSGI/bundles.
All you have to do is add the following line
<import resource="classpath*:META-INF/beans.xml" />
to your main beans.xml file (which shouldn't be in the META-INF directory).
Now instead of configuring the modules in MANIFEST.MF like in OSGI, you just put your bean configurations in META-INF/beans.xml in each of your module Jar files.
Since we are only dealing with a single ApplicationContext, we don’t run into context parent/child issues (beans in parent contexts cannot wire to beans in child contexts, using Autowire for example. Aspects defined in parents also do not advise beans in child contexts.)