Spring Framework | это... Что такое Spring Framework? (original) (raw)

У этого термина существуют и другие значения, см. Spring.

Spring Framework

Spring Framework.png
Тип Application framework
Разработчик SpringSource
Написана на Java
Операционная система Кроссплатформенное ПО
Аппаратная платформа Java
Последняя версия 3.1.3[1] (31 октября 2012 года)
Лицензия Apache License 2.0
Сайт http://www.springsource.org (англ.)

The Spring Framework (или коротко Spring) — универсальный фреймворк с открытым исходным кодом для Java-платформы. Так же существует форк для платформы .NET Framework, названный Spring.NET.[2].

Первая версия была написана Родом Джонсоном, который впервые опубликовал её вместе с изданием своей книги «Expert One-on-One Java EE Design and Development»[3] (Wrox Press, октябрь 2002 года).

Фреймворк был впервые выпущен под лицензией Apache 2.0 license в июне 2003 года. Первый стабильный релиз 1.0 был выпущен в марте 2004. Spring 2.0 был выпущен в октябре 2006, Spring 2.5 — в ноябре 2007, Spring 3.0 в декабре 2009, и Spring 3.1 в декабре 2011. Текущая версия — 3.1.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 контейнер

Центральной частью Spring Framework является Inversion of Control контейнер, который предоставляет средства конфигурирования и управления объектами Java с помощью рефлексии. Контейнер отвечает за управление жизненным циклом объекта: создание объектов, вызов методов инициализации и конфигурирование объектов путем связывания их между собой.

Объекты создаваемые контейнером также называются Управляемые объекты или Beans. Обычно конфигурирование контейнера осуществляется путем загрузки XML файлов, содержащих Определение Bean’ов и предоставляющих информацию необходимую для создания bean’ов

Объекты могут быть получены либо с помощью Поиска зависимости, либо Внедрения зависимости. Поиск зависимости — шаблон проектирования, когда вызывающий объект запрашивает у объекта-контейнера экземпляр объекта с определенным именем или определенного типа. Внедрение зависимости — шаблон проектирования, когда контейнер передает экземпляры объектов по их имени другим объектам либо с помощью конструктора, либо свойства, либо фабричного метода.

Модель-представление-контроллер

Spring MVC — фреймворк ориентированный на запросы и предоставляет некоторые возможности для разработчика:

В веб-приложениях можно использовать различные части Spring Framework, а не только Spring MVC.

Доступ к данным

Spring предоставляет свой слой доступа к базам данных и поддерживает все популярные базы данных.

JDBC, iBatis / MyBatis, Hibernate, JDO, JPA, Oracle TopLink, Apache OJB, Apache Cayenne и т. д.

Для всех этих фреймворков, Spring предоставляет такие особенности:

Управление транзакциями

Управление транзакциями в Spring рамках приносит абстракции механизм для платформы Java. Основные возможности:

«Соглашение прежде конфигурации» в разработке приложения

Spring Roo — фреймворк поддерживающий принцип «соглашение прежде конфигурации» для быстрого создания бизнес-приложений.

Может использоваться с:

Интеграция

Spring Integration — фреймворк для J2EE который предоставляет функции необходимые для отправки сообщений или для построения событийно-ориентированной архитектуры.

Spring Hadoop

29 февраля 2012 года VMware выпустил продукт интеграции Spring Framework с Apache Hadoop. Новый фреймворк Spring Hadoop[4] комбинирует возможности Spring Framework с возможностью Hadoop, позволяющей разработчикам создавать приложения, которые масштабируются от одного сервера до тысяч и обеспечивают высокую доступность через программное обеспечение, а не аппаратные средства. Интегрируя Hadoop Framework, основанную на Java, open-source платформу для распределенной обработки больших наборов данных в кластерах компьютеров, использующую простую модель программирования, с фреймворком Spring для разработки приложений Java/J2EE, VMware создал проект, который полностью попадает под «зонтик» Spring Data[5].[6]

Среди возможностей нового фреймворка:

Примечания

  1. http://www.springsource.org/node/3720 Spring Framework 3.1.3 Released
  2. Spring.NET Application Framework
  3. Expert One-on-One J2EE Design and Development (англ.)
  4. Spring Hadoop
  5. Spring Data
  6. 1 2 Spring Hadoop: новый фреймворк для Java-разработчиков под «зонтиком» Spring Data. High Load Web.

Ссылки

Литература

Просмотр этого шаблона Веб-фреймворки
ASP.NET DotNetNukeASP.NET MVC • MonoRail
ColdFusion ColdSpring • Fusebox • Mach-II • Model-Glue
Java Apache (CocoonStrutsVelocity • WebWork 2) • AppFuse • AraneaEclipseFacelets • Flexive • FreeMarkerGoogle Web ToolkitGrailsHamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClientSpringStripesTapestry • ThinWire • VaadinWebMacro • WebWork • WebObjects • WicketZK
JavaScript node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JSjQueryjMaki • Microsoft AJAX Library • MochiKit • MooToolsPrototype • qooxdoo • Rialto Toolkit • Ricoscript.aculo.usSmartClientSprySproutCoreYahoo! UI LibraryUnderscorePhoneGap
Perl CatalystInterchange • Titanium • Maypole • HTML:Mason
PHP Acode • Akelos • BlueShoes • CakePHP • Canvas • CodeIgniterCotonti • DIY • Drupal • Fuse • Horde • KohanaLiveStreet • PHP For Applications • PHPOpenbiz • PRADO • Qcodo • Seagull • Solar • Symfony • W3Core • YiiZend • Zoop • Joomla
Python CherryPyDjangoGAE framework • Karrigell • Nevow • Porcupine • PylonsPyramid • Spyce • TurboGearsTwistedTornado • Webware • Zope
Ruby Camping • Nitro • IOWA • Ramaze • Cerise • MerbRuby on RailsSinatra • Padrino
Прочиеязыки Alpha Five • Fusebox (ColdFusionPHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL)