In this series of spring framework tutorials, we will see what is spring, spring IOC, spring AOP, Spring MVC and all other modules in details.
Spring Framework Introduction
Spring is the most popular light weight application development framework for Java Enterprise Applications, it was created by Rod Johnson in 2003. Spring framework is a full stack application development framework, including Spring IOC, Spring MVC, Spring AOP and other supportive templates for almost all general purpose development.
Spring is easy to integrate with almost all other technologies in Java, it has a number of templates to integrate with Hibernate, Mongo DB, Cassandra and much more.
Spring does not force a developer to extend any of it's class and provides a independent module wise development.
Advantages of Spring Framework
There are a number of advantages that Spring provides, here we will some some of the key benefits of using Spring framework in application development.
1) Loose coupling: Spring IOC or Inversion of control is the core of spring framework, it lets the application objects be loosely coupled. All the instances are served by a spring container and hence all the objects in the application are loosely coupled.
2) Light Weight: Spring framework is a true lightweight framework as most of the development is done using POJO's. Spring does not force a developer to implement any predefined interface or extend any class.
3) Fast Development: Spring provides a lot of modules like JDBC template, Hibernate template and much more that makes a developer to integrate and implement on the go.
4) Easy to test: Spring framework lets the application easy to test because of its simple POJO based implementation and provides an inbuilt test suite as well.
5) Easy integration: Spring modules are easy to integrate with other frameworks and technologies, as you can integrate a spring IOC with Struts MVC or Spring mvc with hibernate easily.
Spring Framework Modules
Spring framework is full stack application development framework that provides a number of independent modules to be used on demand basic.
1) Spring IOC or DI
Spring Inversion of Control or Dependency Injection is the core of spring, spring provides a container that knows about all the objects (beans) in the context. Spring IOC makes it possible to maintain loose coupling between objects by providing instance of one object to other object using container.
2) Spring AOP
Spring AOP is again a part of spring core implementation that lets the application code clean and manageable. Spring AOP is responsible for cross cutting concerns and one can define certain tasks like security and error handling independently.
3) Spring MCV Spring MVC is full stack web application development framework, this works great with Spring IOC and can be integrated with almost all popular databased and UI frameworks.
4) Spring Data Spring data is a module to have a number of templates for almost all open-source nosql's and key value based implementation. Spring provides inbuilt templates for Mongodb, Cassandra, Redis, Hadoop and much more.
5) Spring ORM Spring ORM module provides implementation classes and functions to interact with popular orm's like hibernate and ibatis.
6) Spring Test Spring also provides an inbuilt test module to write an run appropriate test cases for the application.
In this article we have seen, what is spring framework, why to use spring, advantages of spring framework and a brief about all modules of Spring Framework. In upcoming articles we will see more about spring midules in action.