Spring MVC provides a lightweight framework for building web applications. It separates concerns into modules with distinct roles like controllers, models and views. This makes applications highly configurable, reusable and easy to test. The framework uses annotations and inversion of control for configuration which promotes loose coupling and rapid development. Core components include the DispatcherServlet, controllers, models and view resolvers.