Theory:Introduction to Spring boot
# The Spring Framework
Spring is one of the most popular application development frameworks for the Java Platform. First of all, we use it to develop web applications, but we can also apply it to the desktop and even to the command-line applications. In a way, Spring is a framework of frameworks that work together providing standard functionality to applications. That's why we sometimes call Spring a platform meaning it's more than just a framework.
Spring's logo
Spring is huge, and it can do a lot of useful things. Here is just a small list of some parts of Spring providing services necessary to most of the real-world applications:
- component container for managing the life cycle of objects inside the application;
- data access framework for working with different types of databases;
- web framework for building web applications with a web server;
- security framework for supporting user authentication and authorization processes;
- testing framework for writing tests for all parts of the application.
Despite its popularity and all its features, Spring is not a perfect framework, and its creators understand it. One of the main issues is that the configuration of the Spring-based applications is very complex. This slows down the development process and creates extra complexity for the beginners.
Fortunately, Spring developers realized that it was possible to automate much of this work, so they developed a new framework called Spring Boot. This framework solves many configuration problems and makes Spring one of the most successful and convenient web development platforms among all.
# What is Spring Boot?
Spring Boot is a part of Spring platform that allows the developers to create stand-alone production-grade Spring-based applications that you can "just run".
This framework has greatly simplified the configuration of applications by applying the convention over configuration approach. This means a programmer does not need to configure everything; instead, the framework defines some default components, behaviors, and automatic configurations for each of the major use cases in Spring. At the same time, when using it, you still have access to all the features of the Spring Framework together with the acquired ease of development.
Spring Boot's logo
Spring Boot also provides a few additional cool features, here are some of them:
- command-line interface;
- monitoring the status of your running applications (health/metrics);
- embedded application server for running your application.
We hope that you find this interesting and soon will see all the simplicity and fun when developing an application with the Spring Boot! We tried not to bore you with history in this topic. If you would like to read some history and philosophy of the Spring framework and Spring Boot, you can visit the official documentation (opens new window) and then come back to their application.