What are some of the basic features of Spring Boot and what makes it easy for people to work with?
If you want to rapidly develop a Spring application, the Spring CLI lets you use the command line for that. It lets you run Groovy scripts which have a syntax very much like Java and with this you can also avoid a lot of the boilerplate code that you normally write for a regular Spring application.
So this one is basically like a starter pack for your dependency management. What this has is a list of about 30 pom files and based on your need, you can pick and chose which pom you want to use to quickly get started. Some examples of starter dependencies are Web Starter, Test Starter and Data JPA Starter.
This is basically a web based application which will create an internal project structure for you. This is the URL for it. https://start.spring.io/ You can specify all the dependencies that you need and it will create a basic project structure with everything that you need.
So what auto configuration does in Spring is that if you have certain jar files in your project, it will attempt to configure your Spring Boot application accordingly. For example, if you have HSQLDB on your classpath and you have not manually configured a database then it will automatically try to add an in memory database. Similarly when we add a Spring MVC jar, we could probably add a lot of bean configurations accordingly.
The Actuator provides many production ready features to the Spring application. These will help while running the Spring Boot application. Monitoring the app which is deployed, gathering various metrics and understanding traffic will become very easy when we use actuator. It also provides HTTP endpoints for users to interact with it which makes it very easy.
These make sure that the application code is logged and is writing in as much as detail as in needed to troubleshoot production or even non production applications. Security is also a key concern here where in if the application needs security, Spring Boot provides a lot of features out of the box to secure your application.
This is basically a high level overview of what Spring Boot is and could do. In future sections, we will go over in detail what each of these modules do and how we can build enterprise grade web applications really fast with Spring Boot!