Spring Framework (или коротко Spring) — универсальный фреймворк с открытым исходным кодом для Java-платформы.
Модули Spring Framework Inversion of Control-контейнер - управление жизненным циклом Java-объектов. Фреймворк аспектно-ориентированного программирования: работает с функциональностью, которая не может быть реализована возможностями объектно-ориентированного программирования на Java без потерь. Фреймворк доступа к данным: работает с системами управления реляционными базами данных на Java-платформе. Фреймворк управления транзакциями Фреймворк MVC: каркас, основанный на HTTP и сервлетах
Фреймворк удалённого доступа: конфигурируемая передача Java-объектов через сеть в стиле RPC, поддерживающая RMI, CORBA,
Фреймворк работы с сообщениями: конфигурируемая регистрация объектов-слушателей сообщений для прозрачной обработки сообщений из очереди сообщений с помощьюJMS, улучшенная отправка сообщений по стандарту JMS API. Тестирование. Аспе́ктно-ориенти́рованное программи́рование (АОП) — парадигма программирования, основанная на идее разделения функциональности для улучшения разбиения программы на модули.
Аспект — модуль или класс, реализующий сквозную функциональность
Совет — средство оформления кода, который должен быть вызван из точки соединения.
Точка соединения — точка в выполняемой программе, где следует применить совет Срез (англ. pointcut) — набор точек соединения
Внедрение — изменение структуры класса и/или изменение иерархии наследования для добавления функциональности аспекта в инородный код.
Для всех этих фреймворков, Spring предоставляет такие особенности:
* Управление ресурсами — автоматическое получение и освобождение ресурсов базы данных
* Обработка исключений — перевод исключений при доступе к данным в исключения Spring-а
* Транзакционность — прозрачные транзакции в операциях с данными
* Распаковка ресурсов — получение обьектов базы данных из пула соединений * Абстракция для обработки BLOB и CLOB