Spring Framework

Get introduced to the Spring Framework.

It is important in our fast-paced world to be able to prototype quickly, but also to ensure that we are not doing unnecessary work. To achieve these goals, we need a framework that combines simplicity with efficiency.

Any description of Spring Boot would be incomplete without the mention of Spring Framework, so let’s start with a brief introduction.

The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications on any deployment platform.

Spring is a dependency injection container that helps define everything in our application as loosely coupled components which it then gathers at run time. It also has a programming model that allows us to make abstractions based on specific deployment environments.

Dependency injection means creating dependent objects outside of a class, then introducing them to the class in different ways. This technique is intended to achieve the IoCInversion of Control between classes and their dependencies. Note: Inversion of Control (IoC) expects the direction of dependency within the application to be in the direction of abstraction, not implementation details.

Spring Portfolio

The Spring Portfolio includes several sub-projects, including Spring Data, Spring Security, and most notably, Spring Boot. The specific sub-projects used in the course are:

  • Spring Boot
  • Spring Data
  • Spring Security
  • Spring Web MVC

Spring Boot

Spring Boot is an open-source Java-based framework which is mainly used to create microservices.

Spring Data

Spring Data’s mission is to provide a familiar and consistent, Spring-based programming model for data access while retaining the unique traits of the underlying data store.

Spring Security

Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications.

Spring Web MVC

Spring Web MVC is Spring’s web framework, and is built on the Servlet API.