The modularity of Spring Framework is one of the most important reasons for its widespread used. Spring Framework is highly modular with more than 20 different modules--having clearly defined boundaries.
The following figure shows different Spring modules--organized by the layer of application they are typically used in:
![](https://static.packt-cdn.com/products/9781787123175/graphics/assets/05c2894a-a465-4c3a-88f4-ad2a4931bab7.png)
We will start with discussing the Spring Core Container before moving on to other modules grouped by the application layer they are typically used in.