Difference between the Spring Framework and Spring Boot
The key difference between Spring Boot and the Spring Framework is that the Spring Framework is a lightweight, application development framework upon which many dependent Spring projects are based, while Spring Boot is an application accelerator that integrates and configures multiple Spring projects together.
Spring Boot helps developers bootstrap together multiple Spring projects -- thus the name Spring Boot.
What is the Spring Framework?
The Spring Framework, invented by Rod Johnson and first released in 2004, is a small and simple dependency injection (DI) and inversion of control (IoC) container that helps simplify Java development.
Spring's IoC container provides a direct and comprehensible way for developers to externalize the lifecycle management and configuration of commonly used components.
Enterprise-scale applications are difficult to build, with many components and technologies that require configuration and lifecycle management, including data persistence, RESTful APIs, website development and unit testing.
Spring Boot starter projects
As the Spring framework gained in popularity, Spring subprojects emerged that specialized in these domains. Currently, the Spring Boot initializer boxes the various Spring subprojects into 21 different categories, each with at least five subprojects, including the following:
- Spring Data JPA.
- Spring AI and Ollama.
- Spring JDBC and R2DBC.
- Spring Web Services.
- Spring for Apache Kafka.
- Spring Security & OAuth.
- Spring Web MVC.
- Spring Boot DevTools.
- Spring Web with Thymeleaf.
What is Spring Boot?
Imagine a software architect is tasked to pull 10-20 Spring projects together into one development environment. It's a daunting task to configure, integrate and bootstrap an error-free development environment that combines such a hodge-podge of independent Spring projects. That is where Spring Boot comes in.
Spring Boot provides software development teams with a project initializer that presents a simple menu from which to select various projects to use in a Spring-based RESTful API, console app or microservice. From there, Spring Boot provides a preconfigured, error-free Maven or Gradle project. Programmers can get developing right away.
That's the whole point of Spring Boot. It helps developers bootstrap their Spring applications to accelerate the overall software development process.
Why is Spring Boot an 'opinionated' framework?
The other big benefit of Spring Boot is that the projects it creates take a Spring-first approach to software development. While the Spring Framework lets developers pick and choose when to insert IoC and DI into their app, a Spring Boot application assumes that the application will pervasively use Spring-based DI and IoC patterns. This is why Spring Boot is often referred to as an opinionated framework.
Spring vs. Spring Boot
Spring is a simple framework that has spawned a multitude of powerful subprojects, while Spring Boot is an accelerator tool that helps to simplify the creation and configuration of these projects so that programmers can focus on developing apps and not fighting low-level integration issues.
Cameron McKenzie has been a Java EE software engineer for 20 years. His current specialties include Agile development; DevOps; and container-based technologies such as Docker, Swarm and Kubernetes.