Our Tech Stack: Spring Boot
Last week I took a stab at talking about our tools for the first time. I started last week by discussing jHipster, an application generator that we widely use internally on new projects. The reason we use often use jHipster is that it makes our life easier to stand up new projects. Keeping with that theme, today I'll discuss Spring, specifically Spring Boot.
What is Spring?
According to Spring's own website: "Spring makes Java simple." Before we even dive into Spring Boot, let's start with the basis: the Spring Framework. The Spring Framework is the most popular application framework for the Java platform. Frameworks give developers a universal method to build and deploy software. This means that your code can be understood and contributed to others as you are all working with the same building blocks and methods. You've probably heard of other frameworks such as .NET or OpenStep.
The Spring Framework is open source and has been around since 2002. Today it's utilized across many industries and applications. As the world's most popular Java framework, the community is large which means that if you get stuck, someone probably has been where you are before and there is support!
What is Spring Boot?
"Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run"."
Spring Boot is a tool that can be used with the Spring Framework to setup a Spring based application with minimal configuration that run on the Java Virtual Machine. There are three main features to Spring Boot which make this possible:
- An opinionated starter dependencies for configuration
- The ability to create standalone applications
Auto-configuration is a primary feature of Spring Boot. Auto-configuration enables a developer to start working on their application quickly and eliminates some of the human error that may occur when setting up the application.
First, what is opinionated configuration? In short, Spring Boot adds and configures starter dependencies based on your project's needs. Rather than you needing to set default values, or choose what packages to install, the system will define them for you. During the initialization process via a web form (without coding), you are able to choose from a set of starter dependencies (Spring Starters) covering typical use cases. The system contains 50+ Spring starters, and like everything else in the software world, there are numerous 3rd party starters to choose from as well.
With Spring Boot you are able to initialize an application on any platform simply by hitting the Run command. This means that the application can be run offline, and only on a single computer if so desired.
Why do we use Spring Boot?
The biggest reason we use Spring Boot along with the Spring framework is the ease of use and ability to start developing quicker. In theory anyone can use the Spring Framework on its own and you may have greater flexibility. However in practice we find using Spring Boot is worth this tradeoff due to the time saved. With Spring Boot you still have all the needed Spring Framework features such as data binding, type conversion, built in security/testing and more.
How can I learn more about Spring Boot or the Spring Framework?
One of the reasons I chose to write this blog is that we believe anyone can write code, all it takes is a computer and internet connection. The Spring Framework has multiple tutorials available online. From paid coding courses to bootcamps, it's one of the most popular frameworks to just start developing on due to its simplicity during configuration. Spring has many tutorials available on their site as a good starting point, or feel free to reach out to us for advice!