A brief history of Spring
For the first implementation of our reference architecture, we will employ the Spring framework. The Spring framework is a mature, open-source, Java-based application framework with a long history as the primary alternative to the Java Platform, Enterprise Edition (JEE). The first version of the Spring framework was created by Rod Johnson in 2002 in parallel with the publication of his book Expert One-on-One J2EE Design and Development.Spring's origins were, in large part, a reaction to deficiencies Johnson identified within JEE, specifically, issues with the JEE's Enterprise Java Bean (EJB) component framework and a lack of an end-to-end solution. Spring attempted to remedy the deficiencies by introducing a more straightforward mechanism based on plain-old-java-objects(POJO) and the introduction of an Inversion of Control (IoC) container. With the IoC (AKA Dependency Injection) container, the framework makes calls to application-specific code rather than the application code making calls to framework libraries.
With Spring, applications are composed of a set of loosely coupled components that are wired together at runtime by the framework. This loosely coupled approach makes testing simpler and runtime application configuration possible. Through a comprehensive portfolio of supporting modules, Spring provides a large complement of the most common application components needed to develop enterprise applications. Because of these supporting modules, Spring is usually characterized as an application framework, rather than a web framework.
Spring Boot
In 2012, a feature request was opened requesting a containerless web application architecture within the Spring ecosystem. From that feature request, Spring Boot emerged. With Spring Boot, developers get an "opinionated" architecture that employs a convention-over-configuration approach to application development. This approach significantly simplifies the process of selecting and configuring both Spring & third-party support libraries allowing developers to be more productive quicker.Spring boot gets developers started quicker as well as supply non-functional features often needed by most applications (e.g., security, metrics, health checks, externalized configuration.). Additionally, Spring Boot supported the embedding of Apache Tomcat or Jetty directly into the application. By embedding the webserver directly into the application, Spring Boot applications can be packaged as self-contained jar files that can be run directly via the java -jar command. This approach makes Spring Boot an excellent framework for building microservices.
Spring Cloud
Spring Cloud builds on the Spring Boot platform to deliver additional support for many of the microservice patterns we have seen in previous articles in this series. Spring Cloud provides support for:- Distributed Configuration
- Service Registry and Discovery
- Service Routing
- Load balancing
- Circuit Breakers
- Distributed Messaging
Twitter
Facebook
Reddit
LinkedIn
Email