Главная » Spring » Компоненты, управляемые сценариями Spring

0

Программный код на языке Java, который превращается в компо- ненты приложения на основе Spring, в конечном итоге компилирует- ся в байт-код и выполняется виртуальной машиной JVM. Более то- го, вы наверняка упакуете скомпилированный код в JAR-, WAR- или EAR-файл для последующего развертывания. Но что, если после развертывания приложения потребуется изменить поведение кода?

Проблема со статически скомпилированным кодом состоит в том, что он… таки… статичен. Скомпилированный в файл класса и упа- кованный в дистрибутив, его сложно будет изменить без переком- пиляции, повторной упаковки и развертывания всего приложения. Во многих обстоятельствах это приемлемо (и даже желательно). Но

и в этом случае статически скомпилированный код не позволяет быстро реагировать на изменяющиеся потребности бизнеса.

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

Если часть приложения, вычисляющая налоговую составляющую, скомпилирована статически вместе с остальным кодом, единственным доступным вариантом будет развертывание «безналоговой» версии приложения в полночь, с последующим развертыванием базовой вер- сии в следующую полночь. Вам придется заготовить кофе на две ночи.

В приложениях на основе фреймворка Spring имеется возмож- ность писать программный код на языке Ruby, Groovy или BeanShell и внедрять его в контекст приложения, как если бы это был обыч- ный компонент, написанный на языке Java, как показано на рис. 3.9. В следующих нескольких подразделах я продемонстрирую, как пи- сать сценарии на языках Ruby, Groovy и BeanShell для компонентов, выполняющихся под управлением Spring.

Рис. 3.9. Фреймворк позволяет внедрять

не только POJO в POJO. Он предоставляет возможность динамически модифицировать поведение приложения, внедряя в POJO компоненты, управляемые сценариями

Тех, кому нравится музыка Calypso, ожидает сюрприз – я соби- раюсь продемонстрировать особенности компонентов, управляемых сценариями, проведя аналогии с одной из самых известных песен

этого жанра. Следите за тем, как я добавлю динамически управляе- мый лайм в кокос Java.

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

По теме:

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