What is Spring?
Spring is an open source framework and inversion control container used to simplify the process of building Java Enterprise applications. Throughout the years, this framework has become the leading tool used for building web applications among major companies in financial industries, retail firms, and much more.
Common concerns among developers new to spring.
When it comes to starting out developing using the Spring Framework, it can be a daunting task. Many questions come to mind such as…
- What development environment should I use creating my own Spring application?
- There are so many Spring modules, which ones should I focus on?
- What books, lectures, and resources should I utilize to master this framework?
Let us begin with the first.
The best tool for building spring applications is the Spring Tool Suite.
According to their website
“Spring Tools 4 is the next generation of Spring tooling for your favorite coding environment. Largely rebuilt from scratch, it provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Atom IDE.”
So whether you prefer Eclipse or Visual Studio Code for Java Projects, this tool suite is customization for your individual needs. I personally prefer the Eclipse modification for Spring. It allows you to easily integrate build tools such as Maven or Gradle and gives you the feature to initialize a Spring Project with dependencies needed for database work, REST controllers, security, and many others!
With so many spring modules, where should I begin?
Which module you decide to use depends on the type of application you are trying to build. Here are a list of various modules…
- Spring MVC – This modules follows the Model, View, Controller architectural pattern for designing interfaces. The basic premise behind MVC is you have a controller which receives incoming data (this can be in the form of a URL in the case of REST), the controller will often call a service that manipulates the data or saves it in the database, and finally a view will be returned which generally is a web page or any other front end design that the user sees.
- Spring Core – This is the fundamental container that all other modules use. Your applications will be developed as POJO’s otherwise known as Beans, which are just Java classes that get interconnected by Spring. It will handle injecting dependencies your class might have and will take control of wiring your application.
- Spring Boot – The most commonly used module for building applications quickly with minimal configuration, is Spring Boot! If you are new to spring or a veteran in the industry, boot is the best platform for developing stand-alone microservices. In fact, Spring Boot allows you to incorporate all other modules into a single application on the fly! It even includes an application container such as tomcat for deploying a server and allows you to have full blown web application build in no time.
I suggest using Spring Boot for all of your Spring Development needs!
Finally we come to the moment you have been waiting for, where can I begin?!?
Here are my top five choices for learning Spring.
- Chad Darby’s Udemy Spring Course!
- Spring 5: Learn Spring 5 Core,
- Spring AOP
- Spring MVC
- Spring Security
- Spring Rest
- and more!
- Spring Guides from Spring.io
- OmarElGabry’s Blog
- Pro Spring Boot by Felipe Gutierrez
- Pro Spring 5: An in depth guide to the spring framework and its tools.