* Spring framework follows layered architecture pattern that helps in the necessary components selection along with providing a robust and cohesive framework for J2EE applications development.
* The AOP (Aspect Oriented Programming) part of Spring supports unified development by ensuring separation of application’s business logic from other system services.
* Spring provides highly configurable MVC web application framework which has the ability to switch to other frameworks easily.
* Provides provision of creation and management of the configurations and defining the lifecycle of application objects.
* Spring has a special design principle which is known as IoC (Inversion of Control) that supports objects to give their dependencies rather than looking for creating dependent objects.
* Spring is a lightweight, java based, loosely coupled framework.
* Spring provides generic abstraction layer for transaction management that is also very useful for container-less environments.
* Spring provides a convenient API to translate technology-specific exceptions (thrown by JDBC, Hibernate or other frameworks) into consistent, unchecked exceptions. This introduces abstraction and greatly simplifies exception handling.