Spring Framework
Spring Framework | |
---|---|
Файл:Spring Framework.png | |
Тип | Application framework |
Разработчик | SpringSource |
Написана на | Java |
Операционная система | Cross-platform |
Первый выпуск | 16 ноября 2002 |
Аппаратная платформа | Java |
Последняя версия | 3.1.0 (29 октября 2010) |
Репозиторий | github.com/spring-projec… |
Лицензия | Apache License 2.0 |
Сайт | (англ.) |
Медиафайлы на Викискладе |
The Spring Framework (или коротко Spring) — универсальный фреймворк с открытыми кодами для Java-платформы и .NET Framework (Spring.NET).[1].
Первая версия была написана Родом Джонсоном, который впервые опубликовал её вместе с изданием своей книги «Expert One-on-One Java EE Design and Development»[2] (Wrox Press, октябрь 2002 года).
Фреймворк был впервые выпущен под лицензией Apache 2.0 license в июне 2003 года. Первый стабильный релиз 1.0 был выпущен в марте 2004. Последующие стабильные релизы вышли в сентябре 2004 года и марте 2005 года. Текущая версия 3.1.0 [3]
Несмотря на то, что Spring Framework не обеспечивал какую-либо конкретную модель программирования, он стал широко распространённым в Java сообществе главным образом как альтернатива и замена модели Enterprise JavaBeans. Spring Framework предоставляет бо́льшую свободу Java разработчикам в проектировании, кроме того, он предоставляет хорошо документированные и лёгкие в использовании средства решения проблем, возникающих при создании приложений промышленного масштаба.
Между тем, особенности ядра Spring Framework применимы в любом Java приложении, и существует множество расширений и усовершенствований для построения веб-приложений на Java Enterprise платформе. По этим причинам Spring приобрёл большую популярность и признаётся разработчиками как стратегически важный фреймворк.
Введение в Spring Framework
Spring Framework обеспечивает решения многих задач, с которыми сталкиваются Java разработчики и организации, которые хотят создать информационную систему, основанную на платформе Java. Из-за широкой функциональности трудно определить наиболее значимые структурные элементы, из которых он состоит. Spring Framework не всецело связан с платформой Java Enterprise, несмотря на его масштабную интеграцию с ней, что является важной причиной его популярности.
Spring Framework, вероятно, наиболее известен как источник расширений (features), нужных для эффективной разработки сложных бизнес-приложений вне тяжеловесных программных моделей, которые исторически были доминирующими в промышленности. Ещё одно его достоинство в том, что он ввел ранее неиспользуемые функциональные возможности в сегодняшние господствующие методы разработки, даже вне платформы Java.
Этот фреймворк предлагает последовательную модель и делает её применимой к большинству типов приложений, которые уже созданы на основе платформы Java. Считается, что Spring Framework реализует модель разработки, основанную на лучших стандартах индустрии, и делает её доступной во многих областях Java.
Модули Spring Framework’a
Spring Framework может быть рассмотрен как коллекция меньших фреймворков или фреймворков во фреймворке. Большинство этих фреймворков может работать независимо друг от друга, однако, они обеспечивают большую функциональность при совместном их использовании. Эти фреймворки делятся на структурные элементы типовых комплексных приложений:
- Inversion of Control контейнер: конфигурирование компонент приложений и управление жизненным циклом Java объектов.
- Фреймворк аспектно-ориентированного программирования: работает с функциональностью, которая не может быть реализована возможностями объектно-ориентированного программирования на Java без потерь.
- Фреймворк доступа к данным: работает с системами управления реляционными базами данных на Java платформе используя JDBC и Object-relational mapping средства обеспечивая решения задач, которые повторяются в большом числе Java-based environments.
- Фреймворк управления транзакциями: координация различных API управления транзакциями и инструментарий настраиваемого управления транзакциями для объектов Java.
- Фреймворк Model-view-controller: каркас, основанный на HTTP и сервлетах предоставляющий множество возможностей для расширения и настройки (customization).
- Фреймворк удалённого доступа: конфигурируемая передача Java-объектов через сеть в стиле RPC, поддерживающая RMI, CORBA, HTTP-based протоколы, включая web-сервисы (SOAP).
- Фреймворк аутентификации и авторизации: конфигурируемый инструментарий процессов аутентификации и авторизации, поддерживающий много популярных и ставших индустриальными стандартами протоколов, инструментов, практик через дочерний проект Spring Security (ранее известный как Acegi).
- Фреймворк удалённого управления: конфигурируемое представление и управление Java объектами для локальной или удалённой конфигурации с помощью JMX.
- Фреймворк работы с сообщениями: конфигурируемая регистрация объектов-слушателей сообщений для прозрачной обработки сообщений из очереди сообщений с помощью JMS, улучшенная отправка сообщений по стандарту JMS API.
- Тестирование: каркас, поддерживающий классы для написания модульных и интеграционных тестов.
Inversion of Control контейнер
Центральной частью Spring Framework является Inversion of Control контейнер, который предоставляет средства конфигурирования и управления объектами Java с помощью обратных вызовов. Контейнер отвечает за управление жизненным циклом объекта: создание объектов, вызов методов инициализации и конфигурирование объектов путем связывания их между собой.
Объекты создаваемые контейнером также называются Управляемые объекты или Beans. Обычно конфигурирование контейнера осуществляется путем загрузки XML файлов, содержащих Определение Bean’ов и предоставляющих информацию необходимую для создания bean’ов
Объекты могут быть получены либо с помощью Поиска зависимости, либо Внедрения зависимости. Поиск зависимости — шаблон проектирования, когда вызывающий объект запрашивает у объекта-контейнера экземпляр объекта с определенным именем или определенного типа. Внедрение зависимости — шаблон проектирования, когда контейнер передает экземпляры объектов по их имени другим объектам либо с помощью конструктора, либо свойства, либо фабричного метода.
Примечания
Ссылки
- Сайт проекта (англ.)
- Spring Framework — на русском (рус.)