In a nut shell, you use it to build enterprise level application. Basically it is framework that helps you to build an app that can generate some revenue or serve as a business service.
Things an enterprise app might need to do and Spring provides libraries for:
- DataBase connections and manipulations. Spring Data module provides a kind of DB libararies, SQL or NOSQL
- REST API. API is a crusial part of business service, and Spring provides Spring MVC for more traditional Servlet style and Spring Webflux for those performance geeks writing Reactive API.
- Caching. Spring Cache is one of my favourite module. When set up correctly, I can use it boost performance by quite a lot.