Читаем Spring in Action Covers Spring 5-1--11 полностью

Spring in Action Covers Spring 5.0 перевод на русский. Глава 1

Начало работы со Spring

Хотя греческий философ Гераклит не был хорошо известен как разработчик программного обеспечения, он, казалось, хорошо разбирался в этом вопросе. Его цитируют так: "единственное неизменное-это перемены.” Это заявление отражает основополагающую истину разработки программного обеспечения.

То, как мы разрабатываем приложения сегодня, отличается от того, что было год назад, 5 лет назад, 10 лет назад, и, конечно, 15 лет назад, когда первоначальная структура Spring Framework была представлена в книге рода Джонсона, Expert One-on-One J2EE Design and Development (Wrox, 2002, http://mng.bz/oVjy).

Тогда наиболее распространенными типами разработанных приложений были браузерные веб-приложения, поддерживаемые реляционными базами данных. Хотя этот тип разработки по-прежнему актуален, и Spring хорошо подходит для таких приложений, мы также заинтересованы в разработке приложений, состоящих из микросервисов, предназначенных для облака, которые сохраняют данные в различных базах данных. И новый интерес к реактивному программированию направлен на обеспечение большей масштабируемости и повышение производительности с неблокирующими операциями.

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

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

1.1 Что такое Spring?

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

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

По своей сути Spring предлагает контейнер, часто называемый контекстом приложения Spring (Spring application context), который создает компоненты приложения и управляет ими. Эти компоненты, или beans, тесно связанные друг с другом внутри Spring application context, как кирпичи, ступени, трубопровод, проводка все вместе составляя дом.

Способ соединения bean-ов вместе основан на шаблоне, известном как dependency injection (DI). Вместо того, чтобы компоненты создавали и поддерживали жизненный цикл других компонентов, от которых они зависят, приложение с зависимостями полагается на отдельную сущность (контейнер) для создания и обслуживания всех компонентов и внедрения их в компоненты, которые в них нуждаются. Обычно это делается с помощью аргументов конструктора или методов доступа к свойствам.

Например, предположим, что среди множества компонентов приложения есть два, к которым вы будете обращаться: служба запасов (для получения уровней запасов) и Служба продуктов (для предоставления базовой информации о продукте). Служба продуктов зависит от службы запасов, чтобы иметь возможность предоставить полный набор сведений о продуктах. На рисунке 1.1 показаны связи между этими компонентами и контекстом приложения Spring.

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

Исторически сложилось так, что контекст приложения Spring для связывания компонентов был связан с одним или несколькими XML-файлами, описывающими компоненты и их связь с другими компонентами. Например, следующий XML-код объявляет два bean-а InventoryService bean и ProductService bean, и привязку InventoryService bean в  ProductService через аргументы конструктора:

 

           

Однако в последних версиях Spring чаще используется конфигурация на основе Java. Следующий класс конфигурации на основе Java эквивалентен конфигурации XML:

@Configuration

public class ServiceConfiguration {

   @Bean

   public InventoryService inventoryService() {

      return new InventoryService();

   }

   @Bean

   public ProductService productService() {

      return new ProductService(inventoryService());

   }

}

 

Перейти на страницу:

Похожие книги

История России
История России

Издание описывает основные проблемы отечественной истории с древнейших времен по настоящее время.Материал изложен в доступной форме. Удобная периодизация учитывает как важнейшие вехи социально-экономического развития, так и смену государственных институтов.Книга написана в соответствии с программой курса «История России» и с учетом последних достижений исторической науки.Учебное пособие предназначено для студентов технических вузов, а также для всех интересующихся историей России.Рекомендовано Научно-методическим советом по истории Министерства образования и науки РФ в качестве учебного пособия по дисциплине «История» для студентов технических вузов.

Александр Ахиезер , Андрей Викторович Матюхин , И. Н. Данилевский , Раиса Евгеньевна Азизбаева , Юрий Викторович Тот

Педагогика, воспитание детей, литература для родителей / Детская образовательная литература / История / Учебники и пособия / Учебная и научная литература
Теория государства и права
Теория государства и права

Учебник, написанный РІ соответствии СЃ РєСѓСЂСЃРѕРј «Теория государства Рё права» для юридических РІСѓР·РѕРІ, качественно отличается РѕС' выходивших ранее РєРЅРёРі РїРѕ этой дисциплине. Сохраняя РІСЃРµ то ценное, что наработано РІ теоретико-правовой мысли Р·Р° предыдущие РіРѕРґС‹, автор вместе СЃ тем решительно отходит РѕС' вульгаризированных РґРѕРіРј Рё методов, существенно обновляет Рё переосмысливает РІРѕРїСЂРѕСЃС‹ возникновения, развития Рё функционирования государства Рё права.РљРЅРёРіР°, посвященная современной теории государства Рё права, содержит СЂСЏРґ принципиально новых тем. Впервые РЅР° высоком теоретическом СѓСЂРѕРІРЅРµ осмыслены Рё изложены РІРѕРїСЂРѕСЃС‹ новых государственно-правовых процессов современного СЂРѕСЃСЃРёР№СЃРєРѕРіРѕ общества. Дается характеристика гражданского общества РІ его соотношении СЃ правом Рё государством.Для студентов, аспирантов, преподавателей Рё научных работников юридических РІСѓР·РѕРІ.Р

Алла Робертовна Швандерова , Анатолий Борисович Венгеров , Валерий Кулиевич Цечоев , Михаил Борисович Смоленский , Сергей Сергеевич Алексеев

Детская образовательная литература / Государство и право / Юриспруденция / Учебники и пособия / Прочая научная литература / Образование и наука