Ask any Java developer who worked with Spring before 2014 what changed their day-to-day, and the answer is Spring Boot. The framework did not add new superpowers to Spring — it removed the setup tax that made starting a Spring project a half-day chore. That is the whole pitch, and it is why Boot became the default.
This page explains what Spring Boot actually does: auto-configuration, starters and the embedded server, and how it sits on top of the Spring Framework rather than replacing it.
The problem: Spring was powerful but heavy to start
Classic Spring gave you a superb IoC container and a rich set of modules, but wiring them together meant a lot of manual configuration — XML files, a servlet container to install and deploy into, and careful version-matching of libraries. The capabilities were excellent; the on-ramp was steep.
Spring Boot keeps every one of those capabilities and attacks the on-ramp. It makes three opinionated moves: configure sensible defaults automatically, bundle dependencies into starters, and embed the server so there is nothing to install. The Spring Framework it builds on is described in what is the Spring Framework.
Move one: auto-configuration
The signature feature. Spring Boot looks at what libraries are on your classpath and configures the application accordingly, creating the beans a typical app would need without you writing them.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // this one annotation triggers auto-configuration
public class ShopApplication {
public static void main(String[] args) {
SpringApplication.run(ShopApplication.class, args);
}
}
@SpringBootApplication bundles three things: component scanning, configuration support, and
@EnableAutoConfiguration. That last one is the magic — if a web library is present, Boot
sets up an embedded server and Spring MVC; if a database driver is present, it wires a data
source. You did not configure any of it, yet it is all there. The mechanics are covered in
Spring Boot auto-configuration.
Crucially, auto-configuration is a default, not a cage. Define your own bean for something Boot would auto-configure, and yours wins. You get convenience without losing control.
Pro tip: When asked "what makes Spring Boot different from Spring?", lead with auto-configuration: "Boot inspects the classpath and configures beans automatically, so I add a dependency and the feature just works — but I can override any default." That one sentence captures the essence and the escape hatch interviewers want to hear about.
Move two: starter dependencies
Assembling the right libraries at compatible versions used to be a real chore. Starters collapse that into a single line.
<!-- One starter pulls in Spring MVC, JSON support and an embedded Tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter-web brings in everything needed to build web endpoints — Spring MVC,
Jackson for JSON, validation, and an embedded Tomcat — all at versions guaranteed to work
together. Need data access? Add spring-boot-starter-data-jpa. Security?
spring-boot-starter-security. Each starter is a curated bundle, so you stop hand-picking and
version-matching jars. The full picture is in
Spring Boot starters.
Move three: the embedded server
In classic Spring you built a WAR file and deployed it into a Tomcat you installed and managed separately. Spring Boot embeds the server inside your application, so the app is a self-contained runnable jar.
# Build a single executable jar and run it — no external server needed
mvn clean package
java -jar target/shop-application-0.0.1-SNAPSHOT.jar
That command starts Tomcat inside the jar and your app is live on port 8080. This is the change that made Spring Boot the natural fit for containers and cloud deployment — "just a jar" is exactly what Docker and Kubernetes want. It also makes local development trivial: one command, no server setup.
How the pieces fit
Put the three moves together and you can see the shape of Boot:
| Feature | What it removes | Result |
|---|---|---|
| Auto-configuration | Manual bean/XML setup | App configures itself from the classpath |
| Starters | Hand-picking library versions | One dependency per feature |
| Embedded server | Installing and deploying to Tomcat | App runs as a plain jar |
None of this replaces Spring — the IoC container, dependency injection and beans are all still there, doing exactly what they do in inversion of control. Boot simply builds and configures that container for you. When people say "Spring Boot is opinionated", this is what they mean: it makes good default choices so you can start fast, and lets you override them when you need to.
Common mistake: Believing Spring Boot is a different framework you learn instead of Spring. It is not — it is a productivity layer over Spring. Skipping the core concepts and jumping straight to Boot leaves you unable to debug wiring errors, because those errors come from the Spring container underneath.
What you build with it
With those three moves, a working REST API is minutes of work rather than a morning of setup. You write a controller, run the jar, and hit an endpoint:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HealthController {
@GetMapping("/health")
public String health() {
return "OK";
}
}
No server to configure, no XML, no boilerplate — the endpoint is live the moment the app starts. The natural next step is building a real one, walked through in building a REST API with Spring Boot, after you have created your first app in your first Spring Boot application.
Convention over configuration
The philosophy underneath all three moves has a name: convention over configuration. Rather
than make you specify every detail, Spring Boot assumes sensible defaults and only asks you to
configure the things that differ from them. Your app listens on port 8080, looks for
application.properties in src/main/resources, and scans components from your main class's
package — none of which you had to declare.
This is a deliberate trade. You give up a little explicitness in exchange for a lot of speed,
and you can always override a convention when your case is unusual. Want a different port? One
line in application.properties. Want a bean configured differently from the auto-configured
default? Define your own and it takes precedence. The defaults are a starting point, never a
ceiling — which is exactly why the framework can be both fast for beginners and flexible for
large teams.
What Spring Boot does not change
A frequent misunderstanding is that Spring Boot is a lighter or simpler alternative to Spring — a different framework with less power. It is the opposite: the full Spring Framework is right there, and Boot adds to it rather than trimming it. Everything you learn about the container, dependency injection, beans and scopes applies unchanged.
That is why the concepts matter more than the shortcuts. When an auto-configured bean is not
what you want, you override it by defining your own — and to do that you must understand what a
bean is. When two beans could satisfy one dependency, Boot's convenience does not save you;
you disambiguate with the same @Qualifier and @Primary tools you would use in plain Spring.
Boot removes typing, not understanding.
Actuator and the production extras
Beyond the three headline moves, Spring Boot ships production-grade features that plain Spring left to you. The most notable is Spring Boot Actuator, which adds ready-made endpoints for health checks, metrics and application info by adding one starter.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
With that on the classpath, hitting /actuator/health returns the application's health
status as JSON — exactly what a load balancer or Kubernetes probe needs to know whether your
service is alive. You configured nothing; the starter and auto-configuration did it. This
"batteries included" posture — sensible defaults for the operational concerns every real app
faces — is a big part of why teams standardised on Boot for anything they intend to deploy.
Why it matters for your career
Spring Boot is the backbone of Java backend hiring in India. Most job posts that mention Java also expect Spring Boot, and it is one of the highest-return skills a fresher can build for a backend or full stack role. In CodeBegun's Java Full Stack with AI program in Hyderabad, Spring Boot is where backend concepts turn into shippable APIs, precisely because Boot lets you focus on the logic instead of the plumbing.
The summary: Spring Boot is the Spring Framework with the friction removed. Auto-configuration sets up your beans, starters bundle your dependencies, and the embedded server turns your app into a runnable jar. Learn the core Spring ideas first from the Spring Boot learning hub, then let Boot make them fast.
Frequently Asked Questions
What is Spring Boot in simple terms?
What is the difference between Spring and Spring Boot?
What is auto-configuration in Spring Boot?
What is a Spring Boot starter?
Do I need to know Spring before learning Spring Boot?
Want to Build Your Career in Java Full Stack with AI?
Join CodeBegun and train with working industry engineers — Explore the Program

