00 Preface Why Start to Learn Spring Boot From Scratch

00 Preface - Why Start to Learn Spring Boot from Scratch #

Hello, I’m Jian Xiang. I have over 10 years of experience in building and optimizing large-scale Java EE and distributed systems. I have led a team of a hundred people to develop internet applications using the Spring framework, resulting in a user base of millions. I have extensive practical experience in developing and maintaining systems based on the Spring framework.

Throughout my career, I have led many projects. Let’s take the example of the e-commerce project development team I led. The entire development process, from receiving product requirements to development, testing, and deployment, often had to be completed in just a few days. This challenge forced us to ensure the simplicity of the development process. The most crucial aspect is “speed”: how to quickly and efficiently implement system functionality became a very realistic and tricky problem.

To address this, I compared and practiced with many frameworks and ultimately discovered a development tool - Spring Boot. In the Java EE field, Spring Boot innovates and optimizes the traditional Spring framework. It frees developers from tedious configuration work and provides a large number of plug-and-play integrated components, thereby solving the complex integration process between various components. This greatly improves development efficiency and reduces maintenance costs.

For example, we previously developed a complete web application using the Spring MVC framework. However, in the entire development process, we not only had to write a large number of configuration files and introduce specialized development components for each layer but also had to independently deploy and manage the application server. Furthermore, in order to effectively monitor the running status of the system, we had to introduce some external frameworks that were not user-friendly.

After repeated trials, we finally used the Spring Boot framework because it directly solves the problems of making configuration simple, programming simple, deployment simple, and monitoring simple. It is easy to use, simple, and efficient.

Based on these advantages, Spring Boot became popular in China in 2015, and more and more companies started using Spring Boot as their preferred framework for system development. For example, in several teams I led, all of them built applications using Spring Boot.

Why do you need to learn this course? #

Spring Boot is becoming the standard development framework in the Java EE field. Therefore, mastering Spring Boot has become a necessary skill for Java engineers. Proficiently mastering the various technology components in Spring Boot and understanding its internal operation mechanisms to some extent are both basic requirements for Java application development and the foundation for learning future development frameworks such as Spring Cloud for microservices.

I also have experience working in several large internet companies and often interview Java engineers from different companies. In the interview process, my requirement for developers is that mastering Spring Boot is no longer a bonus but a necessary skill.

You can also visit the Lagou website to view relevant job responsibilities. Basic requirements usually include this skill. Here are two job descriptions I captured for Java development engineer positions:

Drawing 0 Drawing 1

(Job information source: Lagou)

It can be said that having a deep understanding and mastery of Spring Boot is an important credential for successfully entering large companies and obtaining high-paying job offers.

How is this course designed? #

Although Spring Boot provides us with developer-friendliness, the process of learning and applying Spring Boot is not easy for many people. I have personally experienced many problems and challenges during the actual development process, and according to my understanding, this is also the situation that most students face.

  • Seemingly simple yet complex: Spring Boot is easy to get started with, making you feel that development is fast and simple. However, Spring Boot provides many implicit features, such as automatic configuration, which hides the complexity of system development. If you are not familiar with the core content of the framework, once problems arise during development, you will feel confused, and the difficulty of troubleshooting and problem solving will increase.
    • Numerous technical systems and components: Spring Boot provides a large number of functional components, which constitute a vast technical system. You will find that even after mastering one component, you still need to learn again when encountering a new component, resulting in low learning efficiency and easy mistakes.
    • Many pitfalls in integrated frameworks: Spring Boot is an integrated framework that integrates many popular open-source frameworks on the market. Due to the technical differences between these frameworks, you will encounter many pitfalls. This often leads to inexplicable problems during usage, which affects development progress.

Although Spring Boot enables you to solve 80% of the problems with only 20% of the time, the remaining 20% of the problems require systematic learning to understand. Learning Spring Boot has its methods and routines.

Therefore, based on my years of architectural experience and understanding of Spring Boot, I have organized a systematic and progressive learning path. From this path, you can not only grasp the overall knowledge of Spring Boot, but also overcome the challenges of the three major difficulties in learning. This will allow you to learn more efficiently and master the methods and practical skills of using Spring Boot.

Based on the split dimensions of the web application shown in the following figure, I have designed the course into 8 major parts. With the most popular Java EE development framework, Spring Boot, I will introduce how to build a web application from scratch.

Web Application Split Dimensions

Web Application Split Dimensions

  • Part 1: Embark on the journey of learning the Spring framework. This part will introduce the entire ecosystem and technical system of the Spring family, and provide a Spring Customer Service System (abbreviated as SpringCSS) case to guide the learning process of the entire Spring Boot framework.
  • Part 2: Building a multidimensional configuration layer with Spring. This part will introduce the automatic configuration solutions and implementation principles in Spring Boot, as well as how to use its configuration system to achieve complex multidimensional and customized configurations.
  • Part 3: Building a data access layer with Spring. This part will introduce a series of data access components provided by Spring Boot for relational databases, as well as comprehensively introduce Spring Data, a unified data access abstraction framework.
  • Part 4: Building a web service layer with Spring. This part will introduce the system approach to building a web service based on Spring Boot, and how to achieve interaction and integration between multiple web services. I will also analyze the specific details and implementation principles of remote procedure calls.
  • Part 5: Building a messaging communication layer with Spring. This part will introduce the basic concepts of messaging communication, and the integration with popular message middleware such as ActiveMQ, Kafka, and RabbitMQ using the template utility classes provided by Spring Boot.
  • Part 6: Building a system security layer with Spring. This part will introduce the security system in Spring, focusing on user authentication, access authorization, and information encryption. Together, we will explore the security system solutions provided by Spring Boot.
  • Part 7: Building a system monitoring layer with Spring. This part will introduce the plug-and-play service monitoring technology components in Spring Boot, covering various measurement metrics, monitoring endpoints, and visual management features built into Spring Boot, which are major highlights of the framework.
  • Part 8: Testing Spring applications. This part will introduce testing solutions for Spring Boot applications, with a focus on system-level testing methods and engineering practices of the data access layer and service integration layer using mock mechanisms and various annotations.

In addition, for each core component of Spring Boot covered in the course, I will provide detailed code implementation solutions based on complete examples, making it convenient for you to learn and customize. The course materials and code can be downloaded from here.

Instructor’s message #

Nowadays, regardless of the business that a company is involved in or the size and structure of the company, Spring Boot framework is basic to Java EE application development. The usage of Spring Boot is becoming more and more widespread, and the demand for developers with related knowledge is increasing. Mastering the Spring Boot framework has become a basic requirement for high-paying job positions in major internet companies.

As a developer, mastering this core skill will be your “key” to open doors, allowing you to not only gain opportunities for promotion and salary increase but also obtain desired offers from top companies. Therefore, it is necessary for you to study this course carefully, quickly master the Spring Boot framework, and skillfully apply it in your daily development process.