Spring Framework (https://spring.io) might be the best thing since sliced bread in the Java world. It changed the Java Web application landscape for the good. The landscape was monopolized by Java EE vendors before the rise of Spring and soon after Spring, it became the number one choice for Java Web developers, giving Java EE a run for its money. At its core, Spring is an Inversion of Control (IoC; https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans) container providing dependency injection and application context. The main features of Spring or the Spring triangle, combine IoC, Aspect-Oriented Programming (AOP; https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#aop), and technology abstractions in a consistent way. The framework has numerous modules aimed at different tasks, such as data management, security, REST, and web services. Spring Framework and its modules are free and open source. Let us see some of the important modules in a bit more detail.
We'll take a look at Spring Boot, Spring Security, Spring MVC, and Spring Data in the next sections.