Весенний фреймворк
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. Описание этих элементов следующее:
- Модуль SpEL предоставляет мощный язык выражений для управления объектами во время выполнения.
- Context построен на основе Beans и Core и позволяет получить доступ к любому объекту, указанному в настройках. Ключевым элементом модуля Context является интерфейс ApplicationContext.
- Основной модуль предоставляет ключевые части платформы, включая свойства IoC и DI.
- Модуль Bean отвечает за создание Spring Beans и управление ими — это структурная единица контекста приложения.
Веб-платформа Spring
Веб-уровень Spring framework состоит из Web, Web-MVC, Web-Socket, Web-Portlet и т. д.
- Веб-модуль предоставляет такие функции, как загрузка файлов, создание веб-приложений, отдых веб-службы и т. д.
- Web-MVC содержит реализацию Spring MVC для веб-приложений.
- Web-Socket обеспечивает поддержку связи между клиентом и сервером с использованием Web-Sockets в веб-приложениях.
- Веб-портлет обеспечивает реализацию MVC в среде портлета
Доступ к данным Spring Framework
Контейнер Data Access/Integration состоит из JDBC, ORM, OXM, JMS и модуля Transactions.
- JDBC обеспечивает абстрактный уровень JDBC и избавляет разработчика от необходимости вручную регистрировать монотонный код, связанный с подключением к базе данных.
- Spring ORM обеспечивает интеграцию с популярными ORM, такими как Hibernate, JDO, которые являются реализациями JPA.
- Модуль OXM отвечает за связывание объекта/XML — XMLBeans, JAXB и т. д.
- Модуль JMS (служба обмена сообщениями Java) отвечает за создание, отправку и получение сообщений.
- Transactions поддерживает управление транзакциями для классов, реализующих определенные методы и объекты POJO.
Разные модули
Spring также включает ряд других важных модулей, таких как AOP, Aspects, Instrumentation, Messaging и Test.
- АОП реализует аспектно-ориентированное программирование и позволяет использовать весь арсенал возможностей АОП.
- Модуль Aspects обеспечивает интеграцию с AspectJ, который также является мощной структурой АОП.
- Instrumentation отвечает за поддержку инструментария класса и загрузчика классов, которые используются в серверных приложениях.
- Модуль обмена сообщениями обеспечивает поддержку STOMP.
- Наконец, модуль Test обеспечивает тестирование с помощью TestNG или JUnit Framework.
Весна 5 Особенности
Весна 5 принесла масштабное обновление для Весны 4. Вот некоторые из важных особенностей Spring 5:
- Поддержка Java 8, Java 9, Java EE 7, Java EE 8, Servlet 4.0, Bean Validation 2.0 и JPA 2.2. Я рад видеть, что Spring пытается догнать последние версии основных используемых технологий.
- Улучшено ведение журнала благодаря новому модулю - spring-jcl.
- Операции с файлами используют потоки NIO 2, что повышает производительность.
- Поддержка Reactor 3.1 Flux и Mono, а также RxJava 1.3 и 2.1 в качестве возвращаемых значений из методов контроллера Spring MVC.
- Поддержка Kotlin, Project Lombok, JSON Binding API в качестве альтернативы Jackson и GSON.
- Spring WebFlux — Spring становится реактивным.
- Поддержка JUnit 5
- Поддержка функционального программирования через Kotlin.
Вы можете проверить проекты Spring в нашем репозитории GitHub.
Ссылки: Справочная документация Spring