Spring is a framework for Java Enterprise Application Development. It started in 2003, at that time Java offers J2EE for enterprise applications but it was complex and hard to use. Spring Framework was developed as a response to that complexity. Spring grew in popularity and became a defacto standard for Java enterprise application development.

What do we mean by Spring?

Initially, the Spring framework was a single project which provides enterprise application development features alongside Dependency Injection, but over time it grew into a full ecosystem of related projects for different aspects of an application. For example, we have Spring Web MVC for web-related tasks, Spring Data for data management, Spring Security for application security, and so on. Here is the full list of Spring projects from official site. Now when we say “Spring” we are referring to the whole ecosystem of Spring-based related projects.

How to use Spring?

Since there are different projects offered by Spring, configure them properly could be a challenge, even for experienced developers. To overcome this, Spring provides a project called Spring Boot for bootstrapping a Spring application. Spring Boot takes away all of the complexity of setting up a spring application and you can configure any Spring related project with minimum or no configuration. Spring prefers convention over configuration, so most of the features just work right out of the box with no additional configuration required.


Spring Framework started as a Java Enterprise application development framework which grew in popularity and today it has become an ecosystem of related projects. Spring Boot is a spring project for bootstrapping a spring application and hides the complexity of configuring different Spring projects together. Spring prefers convention over configuration and most features just work with minimum or no configuration.