Spring is a lightweight and open source framework created in 2003 by Rod Johnson. It is the most popular application development framework for enterprise Java. It can be thought as a framework of frameworks as it supports various frameworks such as Struts, Hibernate, EJB, JSF, Tapestry, etc. This framework contains several modules such as IOC, DAO, AOP, ORM, WEB MVC, etc.
Advantages of Spring Framework:
1. Predefined Templates:
The templates for Hibernate, JDBC, JPA, etc will be provided by Spring Framework so there is no need to write code. It hides the basic steps of these technologies for security purpose.
2. Loose Coupling:
The applications are loosely coupled due to dependency injection.
3. Easy Testing:
Dependency Injection helps in testing the applications easier and also runs the application without the need of a server.
4. Lightweight:
It is a lightweight framework as it was implemented with POJO. It also does not force the programmer to inherit any class or interface.
5. Fast Development:
It supports various frameworks so that any JavaEE application can be developed easily.
6. Powerful Abstraction:
It provides powerful abstractions to the specifications such as JMS, JPA, JTA, and JDBC.
7. Declarative Support:
The declarative support for validation, formatting, caching, and transactions are provided by Spring Framework.
8. Business Object Management:
It is exposing its services to the presentation tier components.