The Spring Framework is a lightweight solution and a potential one-stop-shop for building your
enterprise-ready applications. However, Spring is modular, allowing you to use only those parts that you
need, without having to bring in the rest. You can use the IoC container, with any web framework on
top, but you can also use only the Hibernate integration code or the JDBC abstraction layer. The Spring
Framework supports declarative transaction management, remote access to your logic through RMI or
web services, and various options for persisting your data. It offers a full-featured MVC framework, and
enables you to integrate AOP transparently into your software.
Spring is designed to be non-intrusive, meaning that your domain logic code generally has no
dependencies on the framework itself. In your integration layer (such as the data access layer), some
dependencies on the data access technology and the Spring libraries will exist. However, it should be
easy to isolate these dependencies from the rest of your code base.
This document is a reference guide to Spring Framework features. If you have any requests, comments,
or questions on this document, please post them on the user mailing list. Questions on the Framework
itself should be asked on StackOverflow (see https://spring.io/questions).