Поиск по сайту:

Весенний фреймворк


Spring Framework — одна из самых популярных сред Java EE. В этой статье мы узнаем о следующем:

  • Архитектура фреймворка Spring
  • Основные компоненты Spring
  • Различные проекты под эгидой Spring Framework.

Я просмотрел диаграмму Google Trends для Spring Framework, Servlet, JSP и JSF. Понятно, что Spring намного опережает все остальные технологии Java EE.

Что такое Spring Framework?

Spring — одна из самых популярных платформ для корпоративной версии Java. Разработчики во всем мире используют Spring для разработки надежных и качественных приложений. Пружинный каркас был разработан Родом Джонсоном. С тех пор Spring стал альтернативной технологией в мире Java для модели EJB. Вы можете создавать различные виды приложений, используя структуру Spring.

Основные концепции Spring — DI, IoC, AOP

  • Невозможно понять, что такое Spring Framework, не понимая, что такое инверсия управления. Внедрение зависимостей, также называемое DI, является одним из типов инверсии управления (IoC).
  • Инверсия управления — это принцип объектно-ориентированного программирования, при котором объекты программы не зависят от конкретных реализаций других объектов, но могут иметь знания об их абстракциях (интерфейсах) для последующего взаимодействия.
  • Внедрение зависимостей — это композиция структурных шаблонов проектирования, в которой для каждой функции приложения существует один, условно независимый объект (сервис), который может иметь потребность в использовании других объектов (зависимостей), известных ему по интерфейсам . Зависимости передаются (внедряются) сервису в момент его создания. Это ситуация, когда мы вводим элемент одного класса в другой. На практике DI реализуется путем передачи параметров в конструктор или с помощью сеттеров. Библиотеки, реализующие этот подход, также называются контейнерами IoC.
  • Аспектно-ориентированное программирование — парадигма программирования, которая позволяет выделить сквозную (функциональную) функциональность в приложении. Эти функции, которые охватывают несколько узлов приложения, называются сквозными задачами, и эти сквозные примечания отделены от непосредственной бизнес-логики приложения. В ООП ключевой единицей является класс, а в АОП ключевым элементом является аспект. DI помогает разделить классы приложений на отдельные модули, а АОП помогает отделить сквозные задачи от объектов, на которые они влияют.

Архитектура Spring Framework

Основные компоненты Spring Framework

Контейнер Core от Spring состоит из четырех модулей: SpEL, Context, Core, Beans. Описание этих элементов следующее:

  1. Модуль SpEL предоставляет мощный язык выражений для управления объектами во время выполнения.
  2. Context построен на основе Beans и Core и позволяет получить доступ к любому объекту, указанному в настройках. Ключевым элементом модуля Context является интерфейс ApplicationContext.
  3. Основной модуль предоставляет ключевые части платформы, включая свойства IoC и DI.
  4. Модуль Bean отвечает за создание Spring Beans и управление ими — это структурная единица контекста приложения.

Веб-платформа Spring

Веб-уровень Spring framework состоит из Web, Web-MVC, Web-Socket, Web-Portlet и т. д.

  1. Веб-модуль предоставляет такие функции, как загрузка файлов, создание веб-приложений, отдых веб-службы и т. д.
  2. Web-MVC содержит реализацию Spring MVC для веб-приложений.
  3. Web-Socket обеспечивает поддержку связи между клиентом и сервером с использованием Web-Sockets в веб-приложениях.
  4. Веб-портлет обеспечивает реализацию MVC в среде портлета

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

Контейнер Data Access/Integration состоит из JDBC, ORM, OXM, JMS и модуля Transactions.

  1. JDBC обеспечивает абстрактный уровень JDBC и избавляет разработчика от необходимости вручную регистрировать монотонный код, связанный с подключением к базе данных.
  2. Spring ORM обеспечивает интеграцию с популярными ORM, такими как Hibernate, JDO, которые являются реализациями JPA.
  3. Модуль OXM отвечает за связывание объекта/XML — XMLBeans, JAXB и т. д.
  4. Модуль JMS (служба обмена сообщениями Java) отвечает за создание, отправку и получение сообщений.
  5. Transactions поддерживает управление транзакциями для классов, реализующих определенные методы и объекты POJO.

Разные модули

Spring также включает ряд других важных модулей, таких как AOP, Aspects, Instrumentation, Messaging и Test.

  1. АОП реализует аспектно-ориентированное программирование и позволяет использовать весь арсенал возможностей АОП.
  2. Модуль Aspects обеспечивает интеграцию с AspectJ, который также является мощной структурой АОП.
  3. Instrumentation отвечает за поддержку инструментария класса и загрузчика классов, которые используются в серверных приложениях.
  4. Модуль обмена сообщениями обеспечивает поддержку STOMP.
  5. Наконец, модуль Test обеспечивает тестирование с помощью TestNG или JUnit Framework.

Весна 5 Особенности

Весна 5 принесла масштабное обновление для Весны 4. Вот некоторые из важных особенностей Spring 5:

  1. Поддержка Java 8, Java 9, Java EE 7, Java EE 8, Servlet 4.0, Bean Validation 2.0 и JPA 2.2. Я рад видеть, что Spring пытается догнать последние версии основных используемых технологий.
  2. Улучшено ведение журнала благодаря новому модулю - spring-jcl.
  3. Операции с файлами используют потоки NIO 2, что повышает производительность.
  4. Поддержка Reactor 3.1 Flux и Mono, а также RxJava 1.3 и 2.1 в качестве возвращаемых значений из методов контроллера Spring MVC.
  5. Поддержка Kotlin, Project Lombok, JSON Binding API в качестве альтернативы Jackson и GSON.
  6. Spring WebFlux — Spring становится реактивным.
  7. Поддержка JUnit 5
  8. Поддержка функционального программирования через Kotlin.

Вы можете проверить проекты Spring в нашем репозитории GitHub.

Ссылки: Справочная документация Spring