These Spring Framework features are as follow
i. Lightweight
The Spring Framework is very lightweight with respect to its size and functionality. It is due to its POJO implementation which doesn’t force to inherit any class or implement any interfaces.
ii. Aspect Oriented Programming(AOP)
It is an important part of Spring Framework. Aspect Oriented Programming is used for separating cross-cutting concerns (for example logging, security etc.) from the business logic of the application.
iii. Transaction Management
Transaction Management use for unify several transaction management APIs and is used to coordinate transactions for Java object. Also, not tie to the J2EE environment and use with containerless environments.
iv. Container
The Spring Framework designs and manages the lifecycle and configurations of application objects.
v. Dependency Injection
Dependency Injection is a feature of Spring Framework allows you to develop loosely coupled applications. Therefore, the unit testing of these loosely coupled applications becomes easier. This also allows the developer to swap out some of the modules according to its need.
vi. Integration with other frameworks
A great thing about this framework is that it doesn’t try to solve the problems have already solved. It just tries to integrate them with its framework which provides a solution to greater problems. Example IBATIS, Hibernate, Toplink etc.