Spring-Introduction
Spring is a framework used for comprehensive programming and developing java based applications. One of the key features of spring framework is that it provides infrastructural support at application level so that developers can focus more on the application business logic. Let’s learn about features of Spring framework.
Features of Spring Framework
- Core Technologies : dependency injection, resources, events, validation, i18n, data binding, type conversion, SpEL, AOP
- WEB Frameworks : Spring MVC, Spring WebFlux etc
- Data Access : Transactions management, JDBC, DAO support, ORM, Marshalling XML
- Testing Frameworks : Mocking of objects, TestContext framework, Spring MVC Test, WebTestClient
- Integration : Remoting, JMS, JMX, JCA, tasks, email, cache, scheduling
- Languages : Kotlin, Groovy, other dynamic languages
Spring Modules
Spring framework consists of many modules. Let’s understand it using below diagram. Then we will learn about each one of them separately
Spring Core Container
This module consists of core, beans, context and expression language. This module provides support for inversion of control paradigm and application context along with expression language.
Test
This module provides support for testing of spring applications. JUnit and TestNG support is provided with this module.
AOP, Aspects, and Instrumentation
AOP stands for Aspect Oriented Programming. This technique revolves around a concept called Aspects. Cross cutting concerns like logging, transaction management can be implementated using this module.
Data Access and Integration
This module helps in working with data access using ORM, plain JDBC etc. This also supports transaction management.
Web Module
This module provides support for web application development using spring mvc, servlets, and struts. This also has support for portlets.