Normally for a beginner, it takes five, six, or may even a higher number of articles from a number of websites and a number of long YouTube videos to get some understanding about Spring Framework. I have decided to write this article to get all the things you need to know about Spring Framework within 5 minutes. Also, I have shared this same content on my YouTuber channel. You can decide either you want to read this article or watch YouTube videos or both. Either way, you will get what you want effectively without getting lost.
Here is the link to the YouTube video.
What Spring means?
Spring means different things in different contexts. Spring Framework contains of number of modules that have separate code repository and separate release cadence. That is very important to understand. Because most of the beginners will lose their focus when they find out there are number of modules in Spring Framework and they don’t know what to learn first or are those all need to be learned in order to understand Spring Framework. Actually you don’t.
The heart module of all Spring modules is the Spring Core Container which includes the Configuration model and Dependency Injection mechanism. Other modules are modules that you can select based on the requirements of your project.
- Spring Boot
- Spring Security
- Spring Data
- Spring Cloud
- Spring Batch
- Spring Integration
- Spring HATEOAS
- Spring AMQP
are some modules that frequently used by most of the spring projects. You don’t need to have a deep knowledge about each and every module of Spring Framework in order to understand what is Spring. Only thing you need to know is what Spring does?
What Spring does? is make it simple to create enterprise-ready Java applications by providing comprehensive programming and configuration model.
Imagine a typical Java application. It contains a number of objects and each of those is connected to one or many other objects. Let’s say there are 4 objects called A, B, C, and D. A needs to use B so what normally A does is create an instance of B and use it. Meantime if C and D need to use B, those two classes also need to create instances of B in order to use it.
This is how Spring’s Dependency Injection helps Java developers to improve the development efficiency. Likewise there are multiple projects, multiple features that Spring helps developers to make their life easy. You have full control to select what you want to use since all these features comes as different Spring projects. That’s all that you need to know in order to understand about Spring Framework. You can decide what Spring projects that you need and start learning about it, but as a starting point, it always helps if you start with Spring Boot. It is really easy to develop Java application with Spring boot. Refer my next article about starting a Spring boot project.
Key Features of Spring Framework,
Core technologies: dependency injection, events, resources, validation, data binding, type conversion, AOP.
Testing: mock objects, TestContext framework, Spring MVC Test
Data Access: Transactions, DAO support, JDBC, ORM, Marshalling XML.
Spring MVC and Spring WebFlux web frameworks.
Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache.
Languages: Kotlin, Groovy, dynamic languages.