Should I learn Spring or Spring Boot?

Last Update: 15.01.2020. By Jens in Spring Boot | Learning | Developers Life

There is a lot of confusion about Spring Boot and its relationship to the Spring Framework. Some of that leads to questions like “Should I learn Spring Boot rather than the Spring Framework” or “Do I need to know Spring before I can start with Spring Boot?”. Let’s clarify that for you.

Spring Boot is just a way of rapidly starting new applications using the Spring Framework. It is not a replacement or alternative. It also makes it easier to dive into the Spring world as it automates much of the tiresome manual configuration of traditional Spring.

Spring Boot is built on Spring. You can’t use Spring Boot without Spring at all. However, you can choose your path of learning. It is indeed possible, and I also recommend that you start with Spring Boot and then gradually learn the essentials of Spring.

Why?

Going the Spring Boot first route reduces your learning curve and helps not to get overwhelmed. Accepting the magic aka auto-configuration of Spring Boot helps at the beginning. It reduces complexity and aids you in having small successes faster. And victories are necessary to keep learning.

Spring is a complex framework with myriads of modules ranging from accessing databases over building web app and APIs to handling messaging queues. It can help you with almost any problem you are facing in your work. The only downside of it is that you have to configure and set up everything yourself. Which makes it incredibly hard when you just get started. You have to learn too many things at once and will eventually feel overwhelmed and frustrated.

When you go Spring Boot first, much of the complex configuration part is taken care of for you. And once you are ready, you can look behind the curtain and see how it actually works. As a result, you are much faster productive with it.

Nonetheless, it always starts with the basics. And the basics of Spring Boot and Spring is to understand what role the Core in Spring plays and how it does its job.

Avoid Common Learning Mistakes Developers Make

Before we move on with Spring, it is essential to point out common learning mistakes developers make so you can avoid them!

Many developers think they must truly understand every nut and bolt of a Framework before they can start to build even the simplest application. It’s like looking at Mt. Everest and exploring it in theory before taking a single step. It is a daunting task - they buy books or videos and torture themselves by reading thousands of pages or watching hours of videos.

The result?

Nothing.

And at the end, they got the “read the book” achievement but actually did not get any further. They still can’t actually code a tiny simple application, not even the simplest of the simplest CRUD REST service with Spring Boot.

Maybe in theory.

But what is that worth?

Your boss or client does not care if you can code it in theory. They care that you actually deliver.

And you can only learn to deliver when you start building applications with it.

A few fallacies are at work here with the binge theory learning.

First, no one does ever know everything about Spring or any topic at all. Not even the masters or devs of it know everything. It is impossible. When you ask specialists in any field, it’s not Spring only, they still think they don’t know enough about their topic. The more you learn, the more you know what you don’t know.

In Spring, we’ve got Core, MVC, Security (several modules), Data, Data JPA, Cloud, and a bazillion more. Do you need to know all of them at a masters level to build a simple Web app?

Nope.

Second, you don’t need to be a master or have extensive knowledge for starting out and learning. No one, not even the masters did start as masters. All started on the same ground. However, the masters did practice and persist.

They start with the fundamentals.

And then apply them.

Improve.

Third, you don’t need to be a master at getting productive as a developer with Spring.

I’ve met many developers who can develop web apps with Spring MVC and Spring Data JPA but have no clue of Security or Cloud. Yet, they still do their work effectively.

Fourth, massive consumption of resources does only do one thing. A buffer overflow in your mind and the typical result is that you start to procrastinate and after some time just move on. Have you ever wholly read one of those 400-page gorillas?

That’s indeed the most significant obstacle here. IMHO this massive consumption prevents any action. What works best for me is to have an actual achievable goal. It should be a small one like building a simple CRUD app on a topic you know; nothing fancy, just plain old CRUD. You don’t even need a UI for that.

Important is that you have a simple goal, and you actually build something.

Learn more about learning fast in my Learning Process Series I ran on my newsletter some time ago.

The Fundamentals of Spring You Need to Know

In Spring, the core fundamental is to understand what Spring actually does at its core. What real-world problem is Spring Core actually solving? How does it do that?

The plain simple answer, its job is Inversion of control. And it does so by utilizing the mechanism of dependency injection.

Nothing more, nothing less.

How to Learn Spring Boot and Spring Starting from Zero?

Following my learning process, the steps for getting started with Spring Boot are straightforward.

  1. Check the concepts from above if you aren’t familiar with them. dependency injection and Inversion of control
  2. Understand the basics of the Spring Container
  3. Understand what an application context is in Spring
  4. Build a simple application with it
  5. Move to a Spring Boot tutorial

You can get a kick start by taking my FREE Email course for Spring Beginners. I already did the tiresome legwork for you and will teach you the first 3 steps, so you know the fundamental concepts of Spring Core and are ready for taking Spring Boot.

Get Started with Spring Core - FREE