Spring is the core framework that you configure yourself, while Spring Boot configures it for you. Spring Boot is built on top of Spring and adds opinionated defaults, so a new application runs with almost no setup.
| Aspect | Spring | Spring Boot |
|---|---|---|
| Configuration | Manual XML/Java configuration | Auto-configuration |
| Server Setup | External server required | Embedded server included |
| Dependencies | Manual dependency management | Starter dependencies |
| Deployment | WAR files to external servers | Executable JAR files |
| Development Time | More setup and configuration | Faster development |
Spring Boot does not replace Spring. Its auto-configuration creates the beans you would otherwise declare by hand, based on the libraries on the classpath. Starters add a tested set of libraries with one dependency. The embedded server lets you start the app with java -jar.
Your own configuration still takes precedence. When you declare a bean yourself, Spring Boot skips its default for that bean.
The deployment row is the usual case, not a limit. A Spring Boot app can still be packaged as a WAR for an external server, by extending SpringBootServletInitializer.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓