The features of Spring are as follows:
Lightweight: Spring is lightweight when it comes to size and
transparency.
Inversion of control (IOC): Loose coupling is achieved in Spring,
with the Inversion of Control technique. The objects give their dependencies
instead of creating or looking for dependent objects.
Aspect oriented (AOP): Spring supports Aspect oriented programming
and separates application business logic from system services.
Container: Spring contains and manages the life cycle and
configuration of application objects.
MVC Framework: Spring’s web framework is a well-designed web MVC
framework, which provides a great alternative to web frameworks.
Transaction Management: Spring provides a consistent transaction
management interface that can scale down to a local transaction and scale up to
global transactions (JTA).
Exception Handling: Spring provides a convenient API to translate
technology-specific exceptions (thrown by JDBC, Hibernate, or JDO) into
consistent, unchecked exceptions.