You might hear someone using the terms Spring and Spring Boot interchangeably, and, perhaps on certain ocassions it might be ok to do it, but these terms are not the same.

The difference Link to heading

Spring is a framework for developing Java applications. Spring Boot is an extension, a suite, pre-configured to run Spring out-of-the-box while using best practices and not losing flexibility. In other words, Spring Boot takes care of all the fuss of starting a Spring application for you.

You can view Spring as the ingredients to make bread

Image of Bread Ingredients

and Spring Boot as the bread done using these ingredients

Image of Bread

And just like bread, there are many ways in which you can “cook” Spring to your needs.

Convention over Configuration Link to heading

As described by Wikipedia

a software design paradigm used by software frameworks that attempts to decrease the number of decisions that a developer using the framework is required to make without necessarily losing flexibility.

It’s important to understand the design philosophy behind the creation of Spring Boot. Basically, Spring Boot takes an opinionated view on the Spring Framework and on the how it should be implemented, all while maintaining a good architecture and following good practices.

This enforces you to follow these practices to create secure and robust applications, even if you don’t have the knowledge or experience of these practices.

Yes, unless you have a really precise requirement that requires you to create your own Spring configuration from zero (you will get a headache from it), then there’s really no reason not to use Spring Boot to start your Spring application.

Remember, Spring Boot doesn’t make you lose flexibility of your project, so if you prefer to use another library instead of the ones provided you can do it without restrictions.

Check Spring Boot overview page to learn about some of its features and samples. Spring has a big community, which means that anything you need to know it’s out there explained, you just need to ask the right question.