top of page

What is Spring Framework

The Spring Framework is an application framework and inversion of control container for the Java platform.

Most of the new generation of developers thinking that Java is Spring or Spring is Java. In both ways somewhat it is correct.

Spring helped java to sustain this far, their contributions as a framework made java a popular language among developers. Lots of new languages came to the spectrum, but only to compliment Java.

Let us deep dive and see how spring helped java.

The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE (Enterprise Edition) platform.

Spring makes it easy to create Java enterprise applications. It provides everything you need to embrace the Java language in an enterprise environment, with support for #Groovy and #Kotlin as alternative languages on the #JVM, and with the flexibility to create many kinds of architectures depending on an application’s needs.

Spring supports a wide range of application scenarios. In a large enterprise, applications often exist for a long time and have to run on a #JDK and application server whose upgrade cycle is beyond developer control. Others may run as a single jar with the server embedded, possibly in a cloud environment. Yet others may be standalone applications (such as batch or integration workloads) that do not need a server.

Spring is open source. It has a large and active community that provides continuous feedback based on a diverse range of real-world use cases. This has helped Spring to successfully evolve over a very long time.

Spring Projects

Spring Framework

Provides support for dependency injection, transaction management, web apps, data access, messaging etc. This is the core project.The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.

Spring Boot

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". Most Spring Boot applications need minimal Spring configuration.

Create stand-alone Spring applications, Embed #Tomcat, #Jetty or Undertow directly (no need to deploy WAR files). Provide opinionated 'starter' dependencies to simplify your build configuration and Automatically configure Spring and 3rd party libraries whenever possible. Provide production-ready features such as metrics, health checks, and externalized configuration, absolutely no code generation and no requirement for XML configuration

Spring Data

A familiar and consistent, Spring-based programming model for #data access while still retaining the special traits of the underlying data store - relational, non-relational, map-reduce and beyond.

It makes it easy to use data access technologies, relational and non-relational databases, map-reduce frameworks, and cloud-based data services. This is an umbrella project which contains many sub projects that are specific to a given database. Spring Data JDBC, Spring Data JPA, Spring Data JPA are some of the familiar projects we have been using in our java development.

Spring Cloud

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit-breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centers, and managed platforms such as Cloud Foundry.

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 Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements

Spring Integration

Extends the Spring programming model to support the well-known Enterprise Integration Patterns. #Spring Integration enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters. Those adapters provide a higher-level of abstraction over Spring’s support for remoting, messaging, and scheduling. Spring Integration’s primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code.


Spring #HATEOAS provides some APIs to ease creating #REST representations that follow the HATEOAS principle when working with Spring and especially Spring MVC. The core problem it tries to address is link creation and representation assembly.

Further reading:

Recent Posts

See All


bottom of page