End Statement Ending as the Beginning, Spring Boot Summary and Prospects

End Statement - Ending as the Beginning, Spring Boot Summary and Prospects #

Finally, we have reached the last lecture of the course. In this lecture, we will summarize the entire Spring Boot course.

Spring Boot is not only an important member of the Spring family, but also a leading application development framework in the industry. With the core features provided by Spring Boot, we can quickly build a complete web service development solution.

As a systematic course specifically designed for Spring Boot, we will first summarize the core features of Spring Boot introduced in the course, then discuss some thoughts and insights gained during the writing process, and finally look ahead to the future development of Spring Boot.

Innovation of Spring Boot #

Spring Boot is a core development framework provided by the Pivotal team in the Spring family. It is designed based on Spring 4.0 with the aim of simplifying the initial setup and development process of new Spring applications.

Since its inception, this framework has been a leader in the field of Rapid Application Development (RAD). By using the built-in auto-configuration mechanism of Spring Boot, developers no longer need to use complex and repetitive configurations to build and run the entire web application like traditional Spring frameworks, greatly simplifying the development workflow. From this perspective, Spring Boot is undoubtedly an innovative development framework.

Spring Boot not only inherits the excellent features of the Spring framework, but also adds many new features, including but not limited to the following:

  • It can create standalone Spring applications that can be directly run in the form of JAR packages.
  • It embeds servlet containers such as Tomcat and Jetty.
  • It provides “starter” projects with auto-configuration to simplify external component dependency management.
  • It automates the configuration of the Spring container as much as possible.
  • It provides out-of-the-box features such as metrics, health checks, and externalized configuration.

In addition, Spring Boot is also an advocator and practitioner of the “Convention over Configuration” design philosophy.

Convention over configuration is a software design paradigm that aims to help software developers obtain default built-in functional components to reduce the number of decisions to be made. In the daily development process, developers only need to specify the part of the application they are developing that differs from the conventions, and let the framework handle the rest.

Of course, the power of the Spring Boot framework is also reflected in its integration capabilities.

When using the traditional Spring framework, we often encounter situations where the application cannot start due to inconsistent versions of dependent components. Spring Boot solves this problem by integrating a large number of external frameworks, effectively addressing issues such as version conflicts and instability of references in dependency packages. This also reflects the innovation of Spring Boot.

Summary of the Spring Boot Course #

After summarizing the core features and innovations of Spring Boot, let’s summarize the highlights of this course and the differences with other courses.

Here, I have summarized the three major highlights of this course.

The first highlight: A complete introduction to the Spring Boot development technology system. By studying this course, you can comprehensively understand the technology components of web application development based on Spring Boot, including configuration systems, data access, web services, message communication, system security, system monitoring, system testing, and other specialized topics. These technology components cover all aspects of Java EE application development and have a wide range of applications.

The second highlight: Practical application development examples are provided. The case system in this course is simple enough for you to understand and master the various knowledge points from scratch. At the same time, this case system is comprehensive enough, covering various core features and providing relevant configuration options and sample code for reference in daily development process. Third Highlight: Provides in-depth analysis of functional component principles. These analysis processes can help you deepen your understanding of the implementation principles of core technology components such as auto-configuration, data access, and remote invocation, on top of mastering the basics of the Spring Boot framework, so that you know not only the how but also the why.

The entire course took about half a year, from accumulation to brewing, to start-up, and finally to deployment. Throughout this process, I have reviewed part of the source code system of Spring Boot and extracted and summarized some of its internal design thoughts and implementation principles.

Overall, Spring Boot is an open-source framework with high code quality. The integration with the Spring framework, its built-in auto-configuration mechanism, and various functionalities such as data access and remote invocation have left a deep impression on me and have benefited me a lot. I believe that you, who have persisted in learning until today, have gained the same benefits.

Development and Evolution of Spring Boot #

Finally, let’s take a look at the development and future prospects of Spring Boot.

First, let’s take a look at the evolution of Spring Boot and the Spring framework.

Currently, Spring has evolved to version 5.X. With the official release of Spring 5, we have ushered in a new era of reactive programming.

Spring 5 includes various reactive components related to data management, system integration, and web services, greatly simplifying the development process and difficulties of reactive applications.

Taking Spring WebFlux, which supports reactive web, as an example, we provide its architecture diagram below:

Drawing 0.png

Architecture diagram of Spring WebFlux (from the Spring official website)

In the diagram, we can see the technology stack based on Spring WebFlux on the left and the technology stack based on Spring MVC on the right. Traditional Spring MVC is built on the Java EE Servlet standard, which is inherently blocking and synchronous. In contrast, Spring WebFlux is built on reactive streams, allowing us to build asynchronous and non-blocking services.

With the rise of reactive programming techniques such as WebFlux, it provides a good technical foundation for building applications that have real-time responsiveness and resilience.

In a distributed system, there may be dozens or even hundreds of independent web applications that communicate with each other to complete complex business processes, which involves a large number of I/O operations.

Once I/O operations are involved, especially blocking I/O operations, it will increase the overall latency of the system and reduce throughput. If we can integrate non-blocking, asynchronous communication mechanisms into complex processes, it is possible to efficiently handle network requests between services. In this scenario, WebFlux is also a very effective solution.

Next, let’s take a look at another architecture diagram of Spring Boot 2 from the official website:

Drawing 1.png

Architecture diagram of Spring Boot 2 (from the Spring official website)

From the diagram, we can see that Spring Data is divided into two categories at the bottom: traditional Spring Data repositories that support JDBC, JPA, and some NoSQL databases, and reactive Spring Data repositories that support Mongo, Cassandra, Redis, Couchbase, and others.

The significance behind this diagram is that Spring Boot can help us build full-stack reactive programming technologies from the web service layer to the data access layer, ensuring that every aspect of the system has real-time responsiveness.

In the future, let us look forward to a closer integration between reactive programming techniques and the Spring Boot framework.