Java EE и Flex, Часть 1: Совместимая комбинация

Оригинал статьи: Java EE and Flex, Part 1: A compelling combination.

Перевод: Евгений Неруш

Уровень читателя: Начинающий.

Разрабатывая приложение на JavaEE, и обдумывая, каким образом должна быть реализована клиентская часть, все чаще взор разработчиков падает на технологию Adobe Flex, которая в свою очередь предоставляет гибкие возможности для построения пользовательских интерфейсов. В этой статье Дастин Маркс описывает, каким образом Flex взаимодействует с бизнес логикой, реализованной на JavaEE, и какие высоко интерактивные компоненты могут быть использованы для построения гибких пользовательских интерфейсов.

Введение

Flex 3 предоставляет вам другой уникальный способ построения UI для ваших JavaEE приложений.  Вы узнаете, какие возможности предоставляет Flex при работе с таблицами, как описывать лэйаут приложения на языке разметки XML, и как заставить Flex и JavaEE работать вместе. Перед инсталляцией Flex и запуском приложения, давайте рассмотрим преимущества  данной технологии:

  • Код, написанный на Flex, может быть запущен в любом браузере. Всё что для этого нужно – это предварительно установленный плагин для Flash плеера (на данный момент у 95% браузеров Flash плеер уже установлен, что в свою очередь не может не радовать как разработчиков, так и пользователей)
  • Языки сценариев ActionScript и JavaScript основаны на стандарте ECMA-262 – международном стандарте для языка сценариев ECMAScript. По этой причине разработчики, знающие JavaScript, сразу найдут ActionScript хорошо известным языком. Flex так же предоставляет на вооружение разработчикам язык разметки MXML, позволяющий эфективно описывать лэйаут приложения
  • Flex имеет простой механизм связывания свойств одного объекта со свойствами другого объекта приложения
  • Flex имеет встроенную поддержку коммуникации с бек-энд системами как по HTTP протоколу так и по SOAP ориентированным веб сервисам
  • А также Flex предоставляет богатый набор компонентов, использование которых дает разработчикам возможность строить интерактивные пользовательские интерфейсы (включая работу с анимацией, видео и звуком)

Одним из главных преимуществ является поразительное сходство синтаксиса между ActionScript 3.0 и Java. Языки используют похожие условные выражения, похожий синтаксис написания циклов, а так же код конвеншин и правила документирования кода. Структура пакетов в ActionScript родственна к структуре директорий, как и в Java. ActionScript 3 предоставляет объектно-ориентированный подход к программированию, что позволяет работать с наследованием и интерфейсами. Возможности Flex в коммуникации с Java EE приложением используя SOAP или HTTP очень развиты, но вы не лимитированны в использовании только таких подходов к коммуникации. Blaze DS – продукт компании Adobe с открытым исходным кодом, который предоставляет дополнительный гибкий подход к коммуникации с JMS. В качестве альтернативы для реализации коммуникации вы можете использовать GraniteDS, который как и Blaze DS использует бинарный AMF3 формат для общения. GraniteDS легко интегрируется с такими фреймворками, как Spring, Guice, Seam. (more…)

Какими бывают транзакции в Spring?

Заметьте, данный пост не является справочником по работе с транзакциями в Spring, а лишь описывает способы распространения транзакций.

Пожалуйста, будьте ознакомлены с разницей между физическими и логическими транзакциями.

В посте рассматривается версия Spring 2.5.4

Транзакции в Spring могут принимать следующие значения:

  1. REQUIRED – Является значением по умолчанию. Поддерживает текущую транзакцию, создает новую если транзакция ещё не существует. Аналогичен с атрибутом в EJB транзакции с таким же именем.
  2. SUPPORTS – Поддерживает текущую транзакцию, а так же выполняется вне транзакции, если на момент выполнения транзакция не была создана. Аналогичен с атрибутом в EJB транзакции с таким же именем.
  3. MANDATORY – Поддерживает текущую транзакцию, если на момент выполнения транзакция не была создана, выбрасывается исключение. Аналогичен с атрибутом в EJB транзакции с таким же именем.
  4. REQUIRES_NEWСоздает новую транзакцию, приостанавливает текущую транзакцию (если она существует). Аналогичен с атрибутом в EJB транзакции с таким же именем.
  5. NOT_SUPPORTED - Выполняется вне транзакции, приостанавливает текущую транзакцию (если она существует). Аналогичен с атрибутом в EJB транзакции с таким же именем.
  6. NEVER - Выполняется вне транзакции, выбрасывается исключение, если транзакция существует. Аналогичен с атрибутом в EJB транзакции с таким же именем.
  7. NESTEDВыполняется в пределах вложенной транзакции, если текущая транзакция существует. В EJB нет аналога даному атрибуту.

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

To be continued….