Главная » Spring » Дополнительные возможности Spring

0

При более детальном исследовании фреймворка Spring можно об- наружить намного больше, чем видно на поверхности. Фактически, помимо загружаемого дистрибутива Spring Framework, существует множество других проектов. Если остановиться только на исполь- зовании основного фреймворка Spring Framework, можно упустить богатейшие возможности, предлагаемые дополнительными проекта- ми, расширяющими фреймворк Spring. Экосистема Spring включает несколько фреймворков и библиотек, построенных на основе базо- вого фреймворка Spring Framework и друг на друге. Все вместе, вся экосистема Spring распространяет модель программирования Spring практически на все аспекты разработки на языке Java.

Потребовалось бы написать несколько томов, чтобы охватить всю экосистему Spring. Большая ее часть далеко выходит за рамки этой книги, тем не менее мы коротко познакомимся с некоторыми ее эле- ментами. Ниже представлен краткий список того, что можно найти за пределами основного фреймворка Spring Framework.

Spring Web Flow

Фреймворк Spring Web Flow построен на основе фреймворка Spring MVC и обеспечивает поддержку создания диалоговых, много- этапных веб-приложений, направляющих пользователя к его цели

(например, различные мастера или тележки с товарами в интернет- магазинах). Подробнее о фреймворке Spring Web Flow будет рас- сказываться в главе 9, а кроме того, дополнительную информацию можно получить на домашней странице проекта по адресу: http:// www.springsource.org/webflow.

Spring Web Services

Несмотря на наличие поддержки декларативной публикации компонентов Spring в качестве веб-служб в основном фреймворке Spring Framework, с архитектурной точки зрения эти службы опи- раются на менее предпочтительную модель «contract-last»1, когда определение службы создается на основе интерфейса компонента. Фреймворк Spring Web Services предлагает иную модель реализации веб-служб – «contract-first», когда программный код реализации пи- шется на основе определения службы.

В этой книге не будет рассказываться о фреймворке Spring-WS, но вы можете больше узнать о нем на домашней странице по адресу: http://static.springsource.org/spring-ws/sites/2.0.

Spring Security

Безопасность является важным аспектом многих приложений. Фреймворк Spring Security, реализованный на основе Spring AOP, предлагает декларативный механизм обеспечения безопасности приложений на основе фреймворка Spring. Как добавить поддерж- ку Spring Security в приложения, будет показано в главе 10. Даль- нейшие исследования этого фреймворка можно продолжить на до- машней странице проекта, по адресу: http://static.springsource.org/ spring-security/site.

Spring Integration

Многие корпоративные приложения должны взаимодействовать с другими корпоративными приложениями. Фреймворк Spring Integration предлагает реализацию нескольких распространенных шаблонов интеграции в декларативном стиле.

1 Суть модели «contract-last» заключается в том, что при создании веб- службы сначала пишется программный код, реализующий ее, а затем на его основе создается WSDL-определение веб-службы. Существует противоположная ей модель, «contract-first», согласно которой сначала создается WSDL-определение службы, а затем на его основе пишется про- граммный код реализации. – Прим. перев.

В этой книге не будет рассказываться о фреймворке Spring Integ- ration. Но вы можете больше узнать о нем из книги «Spring Integrati- on in Action» Марка Фишера (Mark Fisher), Джонаса Партнера (Jonas Partner), Мариуса Богоевича (Marius Bogoevici) и Ивейна Фулда (Iwein Fuld). Или посетив домашнюю страницу проекта по адресу: http://www.springsource.org/spring-integration.

Spring Batch

Когда требуется выполнить массив операций с данными, необ- ходимо использовать инструмент пакетной обработки. Те, кто со- бирается заниматься разработкой приложения пакетной обработки данных, может воспользоваться фреймворком Spring Batch, допол- няющим надежную модель Spring, ориентированную на создание простых Java-объектов.

Обсуждение фреймворка Spring Batch выходит далеко за рамки этой книги. Поэтому за дополнительной информацией о нем я от- сылаю вас к книге Тьерри Темплиера (Thierry Templier) и Арно Ко- голагнеса (Arnaud Cogolue`gnes) «Spring Batch in Action». Поближе познакомиться с Spring Batch можно на домашней странице проекта по адресу: http://static.springsource.org/spring-batch.

Spring Social

Социальные сети – нарастающая тенденция современного Интер- нета, и появляется все больше и больше приложений, поддерживаю- щих интеграцию с сайтами социальных сетей, такими как Facebook и Twitter. Если эта тема заинтересует вас, подумайте об использо- вании фреймворка Spring Social, расширения Spring для поддержки социальных сетей.

Spring Social – относительно новый фреймворк и не рассматрива- ется в этой книге, но вы можете больше узнать о нем на домашней странице по адресу: http://www.springsource.org/spring-social.

Spring Mobile

Мобильные приложения – еще одна обширная область разработ- ки программного обеспечения. Все больше пользователей отдают предпочтение смартфонам и планшетным компьютерам. Фреймворк Spring Mobile – это новейшее расширение Spring для поддержки разработки мобильных веб-приложений.

С фреймворком Spring Mobile тесно связан проект Spring Android. Этот новый проект, созданный меньше месяца тому назад на момент

написания этих строк, ставит своей целью заимствовать простоту разработки на основе Spring Framework для создания приложений на платформе Android. Этот проект предлагает использовать Spring- версию класса RestTemplate (подробнее о классе RestTemplate расска- зывается в главе 12), которую можно использовать в приложениях для Android.

Обсуждение данных проектов так же выходит за рамки книги

«Spring в действии», но вы можете больше узнать о них по адресам: http://www.springsource.org/spring-mobile и http://www.springsource. org/spring-android.

Spring Dynamic Modules

Фреймворк Spring Dynamic Modules (Spring-DM) представляет собой сплав механизмов внедрения зависимостей Spring и дина- мических модулей OSGi. С помощью Spring-DM можно создавать приложения, состоящие из нескольких отдельных, тесно взаимодей- ствующих, слабосвязанных модулей, которые декларативно создают и используют службы внутри фреймворка OSGi.

Следует отметить, что из-за огромного влияния технологии OSGi модель Spring-DM декларативного объявления служб OSGi была формализована в спецификации OSGi под названием «OSGi Blue- print Container». Кроме того, компания SpringSource выполнила пе- ренос Spring-DM в проект Eclipse, в составе семейства Gemini про- ектов OSGi, и сейчас эта реализация известна под названием Gemini Blueprint.

Spring LDAP

В дополнение к внедрению зависимостей и AOP повсюду в фрейм- ворке Spring Framework используется еще один прием – создание аб- стракций на основе шаблонов для излишне сложных операций, таких как запросы JDBC или обмен сообщениями посредством JMS. Фрейм- ворк Spring LDAP обеспечивает аналогичный подход на основе шаб- лонов к использованию механизма LDAP, устраняя необходимость использовать шаблонный код при выполнении LDAP-операций.

Более подробную информацию о Spring LDAP можно найти по адресу: http://www.springsource.org/ldap.

Spring Rich Client

Веб-приложения все чаще занимают нишу традиционных настоль- ных приложений. Но если вы один из тех, кто занимается разработкой

приложений на основе библиотеки Swing, обратите внимание на фреймворк Spring Rich Client – богатый возможностями комплект инструментов, добавляющий мощь Spring в Swing.

Spring.NET

При переводе проекта на платформу .NET необязательно остав- лять в стороне механизмы внедрения зависимостей и AOP. Фрейм- ворк Spring.NET предлагает те же самые средства обеспечения сла- бой связанности и аспектно-ориентированного программирования, что и Spring, но на платформе .NET.

В дополнение к базовым функциональным возможностям DI и AOP Spring.NET предлагает несколько модулей, упрощающих раз- работку приложений на платформе.NET, включая модули для рабо- ты с ADO.NET, NHibernate, ASP.NET и MSMQ.

Поближе познакомиться с фреймворком Spring.NET можно по адресу: http://www.springframework.net.

Spring-Flex

Технологии Flex и AIR компании Adobe являются одними из наиболее мощных в области разработки полнофункциональных ин- тернет-приложений. Для организации взаимодействий этих поль- зовательских интерфейсов с программным кодом на языке Java на стороне сервера можно использовать технологию удаленных взаи- модействий и обмена сообщениями, известную как BlazeDS. Пакет интеграции Spring-Flex позволяет приложениям, созданным на ос- нове Flex и AIR, взаимодействовать с серверными компонентами Spring посредством BlazeDS. Он также включает расширение для поддержки Spring Roo, обеспечивающее быструю разработку Flex- приложений.

Свое знакомство с пакетом Spring-Flex можно начать со страницы http://www.springsource.org/spring-flex. Обратите также внимание на фреймворк Spring ActionScript: http://www.springactionscript.org, позволяющий использовать многие преимущества Spring Framework в ActionScript.

Spring Roo

Все больше и больше разработчиков начинают опираться в своей работе на фреймворк Spring, поэтому вокруг фреймворка Spring и родственных ему стало накапливаться множество идиом и приемов программирования. В то же время появились такие фреймворки, как

Ruby on Rails и Grails, использующие модель разработки на основе сценариев, упрощающую конструирование приложений.

Фреймворк Spring Roo реализует диалоговое окружение, обеспе- чивающее возможность быстрой разработки приложений на основе Spring, объединяя в себе наиболее удачные приемы, выработанные на протяжении нескольких последних лет.

Что отличает Spring Roo от всех остальных фреймворков быстрой разработки приложений, так это возможность писать программный код на языке Java, использующий Spring Framework. Это самое настоя- щее приложение на основе Spring, а не отдельный фреймворк, напи- санный на языке, чуждом многим корпоративным разработчикам.

Более подробную информацию о Spring Roo можно найти по адресу: http://www.springsource.org/roo.

Расширения для Spring

Помимо проектов, описанных выше, существует также коллекция расширений для Spring, поддерживаемых сообществом, найти кото- рую можно по адресу: http://www.springsource.org/extensions. В их числе можно назвать следующие:

# реализация Spring для языка Python;

# хранилище для больших двоичных объектов (BLOB);

# хранилища данных db4o и CouchDB;

# библиотека на основе Spring для управления рабочим процессом;

# расширения Kerberos и SAML для Spring Security.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии