Spring Framework Series: Zero to Hero

Paul ‘Tofunmi O.
Zero To Production
Published in
4 min readMar 15, 2019
Source: https://www.pexels.com/photo/hello-spring-handwritten-paper-920147/

In this series, I will cover projects in the Spring Framework(write code, deploy and publish to a public repository). We will It is intended for programmers at all levels.

Purpose of this guide.

This guide provides an introduction to the Java Spring framework, explains the modules of this framework and provides examples of each of these modules. The intention of the author is create a go-to (pocket reference) guide for developers at all levels.

My Objective

I am doing this series to give back to the community in 2019. Using this medium (no pun intended), I will be documenting my experiences and sharing my knowledge with the rest of the world.

The series is made up of many parts, it is expected that you read this guide before moving to the different parts. The link to the different parts is at the bottom of this guide.

Intended Audience

It is expected that you have solid grasp of Java programming language especially Java SE edition.

What is Spring Framework?

Spring Framework is an open source application framework and and inversion of control container for Java. The framework introduces core features required in any Java application. It also provides extensions, modules and starter packs focusing on “plumbing” of enterprise applications so that teams can focus on business logic. Over the years, it has grown from being just an IOC container to including several modules for building different parts of an application. These modules include authentication and authorization, transaction management, data access, messaging and testing.

Spring Container

In the world of Java EE, there are containers such as web or servlet containers for managing servlets, filters, JSPs etc .and EJB container for managing EJB components such as entity beans, session and message driven beans. The Spring container not only handles the creation and management of components; it provides services to these components managed in its containers. These servers include transaction management, persistence, security and messaging.

Spring Framework Projects/modules

As the Spring Framework continues to evolve, we expect to see more projects. You can see the full list of projects here https://spring.io/projects/spring-framework. In this guide, in no particular order, we will cover the following projects:

  1. Spring Boot

Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring. In this guide, we used Spring Boot to create your first REST API. It takes an opinionated view of building production-ready applications. Spring Boot comes with several starter options to simplify and reduce development time.

2. Spring Security

The security module of Spring Framework placed it miles ahead of its competitors. Spring Security provides customized yet powerful authentication and access control mechanism for application. Depending on your requirements, you can use one single or multiple authentication types in your spring applications. We will be looking at Spring Security using JWT, building an authorization and resource server and protecting resources using roles and permissions.

3. Spring Batch provides tooling features for development of batch applications. These reusable features helps in processing large volumes data, manage resource management, transaction management, tracing and logging etc.

4. Spring Hateoas solves the problem of creating RESTful representation that follow the HATEAOS principle when working with Spring.

5. Spring Data

Spring Data provides a programming model for data access while still retaining the special traits of the underlying data store. It makes it so easy to access database technologies from relational datastore to non-relational, cloud-based and map-reduce data serves. This project has many modules which we will provide sample tutorial in this guide. Some of the exciting modules in this project are: Spring Data JDBC — provides Spring data repository for JDBC, Spring Data JPA — provides support for JPA such as Hibernate (this tutorial on zero to production uses JPA) and its alternatives and Spring Data MongoDB — provides object-document repository for MongoDB.

We would cover these projects, modules and many more in the coming weeks.

Leave a comment, share, leave reviews and recommendations.

Let’s get started.

Spring Series Table of Contents

Part 1: Create your first restful api

Part 2: Next, is using Spring Data JPA

Part 3: Using Spring Security (Authorization and Authentication) using a secret signing key, JWT, Roles (Coming Soon).

Part 4: Using Spring Security (Authorization and Authentication) using JWT, Oauth 2.0 and Roles. We will build Authorisation and Resource Server using public and private keys.

Part 5: Building the frontend using VueJS

Part 6: Building the frontend using ReactJS

To get latest updates on follow us on twitter and github

Github: https://github.com/zero-to-production

Email: zerotoproduction@gmail.com

--

--

Paul ‘Tofunmi O.
Zero To Production

Passionate about business, technology, abundant living — a life of purpose — and a true follower of Jesus