Какой модуль является основным и необходимым для всех приложений spring
Сегодня программные проекты принято делить на модули. Стремление к модульности позволяет сделать код более чистым и ясным, сократить его объем, что упрощает чтение и восприятие нужной вам части проекта.
Вы слышите Spring и вот вам уже кажется, что это огромный фреймворк, который очень сложно освоить. На деле все обстоит не совсем так. Да, Spring большой, но здесь есть одно но.
Весь проект Spring абсолютно прозрачно для разработчика разбит на отдельные модули. И пусть даже этих модулей множество, они существуют почти на все случаи жизни. Но, для того, чтобы начать пользоваться какой-то новой фичей Spring, вам не нужно тянуть за собой весь фреймворк — достаточно подключить только то, что вам действительно нужно.
Вы начинаете учить Spring и знакомитесь с DI- контейнером. Подключаете три самых основных модуля и все. Понадобилось подключить какую-то из существующих ORM? Добавляете в зависимости всего один модуль — spring-orm. Нужно написать веб-приложение с красивым UI – добавляете spring-webmvc. Именно по такому принципу и ведется работа со Spring.
Что такое модуль?
Модуль — это обычный JAR- архив с набором Java- классов, никакой магии здесь нет.
Все модули Spring можно разбить на несколько групп, как это сделано на картинке ниже:
На рисунке выше основные модули Spring разбиты на несколько групп. Поговорим о них поподробнее.
Core Container.
Основа Spring – это DI- контейнер для управления вашими зависимостями. Все, что относится к созданию и управлению зависимостей находится в модулях spring-beans и spring-core .
DI- контейнер только звучит грозно. На деле это обычная Фабрика ( Factory pattern), создающая для вас объекты там, где вы скажете . А все бины хранятся в контейнере Map.
Context (spring-context) – в этом модуле лежит все, что связано с поддержкой класса ApplicationContext – загрузка ресурсов, инициализация контекста, классы, позволяющие использовать контекст Spring в Java- контейнерах вроде Tomcat/Jetty .
SpEL – (Spring Expression Language) – специальный язык выражений, который дает вам возможность обращаться к вашим бинам прямо внутри XML- конфигурации Spring и настраивать их в зависимости от различных, иногда даже весьма сложных условий. Модуль, отвечающий за эту функциональность автоматически подгружает spring-core.
Data Access/Integration.
Другая довольна большая группа модулей включает в себя набор Java- классов для работы с источниками данных и для взаимодействия с другими системами. Это одни из основополагающих вещей, с которыми нам, разработчикам, приходится сталкиваться каждый день,
Проект Spring JDBC упрощает работу с написанием кода доступа к базам данных в стиле JDBC. Если вы хоть раз делали запрос к базе данных на чистом JDBC, то вы знаете, что это такое. Специальный класс, JdbcTemplate из модуля spring-jdbc облегчит вам жизнь.
Spring ORM – поддержка популярных ORM решений, таких как JPA, Hibernate и iBatis.
Другой крупный проект — Spring Data – создает еще один слой абстракции доступа к вашим базам данных, причем не только реляционным, поддерживаются также и всевозможные NoSQL СУБД, вроде MongoDB, Cassandra и так далее.
В рамках данного проекта Spring предлагает специальную абстракцию в виде интерфейса Repository и способен генерировать за вас не просто целые классы доступа к данным, а даже реализации некоторых методов по сигнатуре вашего интерфейса.
Поддержка транзакционности в Spring также присутствует и работает через Spring AOP, о котором мы еще поговорим, но чуть позже. Все, что связано с работой транзакций Spring и поддержкой Java Transaction API (JTA), находится в модуле spring-tx.
Spring OXM (Object/XML Mapping) – модуль для обработки XML, маршалинга и демаршалинга. Работает с самыми популярными Java- библиотеками для обработки XML вроде Castor XML и JAXB.
Типичный Enterprise всегда был сильной стороной Java, а следовательно и таких флагманских для платформы проектов как Spring. Что же с разработкой веб-приложений, спросите вы? Но и здесь у Spring есть много интересного.
Spring MVC – модуль для создания обычных веб-приложений. Он, как следует из названия, полностью следует использованию паттерна MVC. Для реализации самого UI можно не ограничиваться одной Java и таких технологий как, например, JSF или Apache Velocity, поддержка которых присутствует в Spring. Вы вправе использовать и JavaScript с его огромным набором библиотек .
Spring Reactive Web – новый модуль Spring, появившийся в последней (на момент написания статьи) версии за номером пять. Идеологическое продолжение проекта Spring Web Flux, с помощью которого вы можете максимально просто и красиво писать реактивные веб-приложения на Java.
AOP/Aspects.
C редства поддержки использования аспектно-ориентированного программирования в своих приложениях. Реализация сквозной функциональность вроде логирования, транзакционности или безопасности может быть выполнена при помощи проекта Spring AOP. При этом Spring не запрещает, а даже помогает вам внедрить в свой проект другие, более мощные средства для поддержки аспектно-ориентированного программирования с применением хорошо зарекомендовавшей себя библиотеки AspectJ.
И это не все! На самом деле Spring содержит в себе еще большое число различных модулей, среди которых Spring Messaging, Spring WS, Spring Batch, Spring Cloud и так далее.
Ну и напоследок, конечно Spring Boot, без которого уже кажется странным использование Spring в принципе. Данный модуль помогает программисту максимально быстро запустить его проект, абстрагируясь от огромного количества деталей конфигурации в XML и настроек среды развертывания в виде контейнера. Spring Boot для этих целей предоставляет встроенный контейнер, который просто работает. И это прекрасно.
Привет! В данный момент самое популярное направление развития для девелопера со знанием Java — веб-разработка. Само собой, для этой специальности есть список обязательных к изучению технологий. Одна из главных — Spring . Вы можете возразить: вместо него можно изучить Java EE. Это, конечно, верно, но сейчас в подавляющем большинстве новых проектов используется именно Spring , что сделало его фактически дефолтной, обязательной технологией для Java веб-разработчика. И если вы хотите идти нога в ногу с потребностями рынка, вам придется его изучить. Сегодня я хотел бы поговорить о Spring , а именно — немного расширить ваше виденье о нем: рассказать об истории его создания, ключевых отличиях от Java EE стека и сделать небольшой обзор ключевых компонентов Spring стека. Давайте же приступим!1. Как и когда появился Spring и во что развился со временем
- В июне 2003 года Spring 0.9 выпустили под лицензией Apache 2.0.
- В марте 2004 года выходит Spring 1.0. Интересно, что даже до выпуска Spring 1.0, предыдущую версию 0.9 очень тепло восприняли, и она получила широкое распространение.
- В августе 2004 года Род Джонсон, Юрген Хеллер, Кейт Дональд и Колин Сампалеану стали соучредителями interface21 — компании, которая занимается консультированием, обучением и поддержкой по Spring.
- Октябрь 2006 года: выходит версия Spring 2.0, которая упростила файлы конфигурации XML.
- В Spring 2.5, появившейся в ноябре 2007 года, были представлены конфигурации аннотаций.
- Spring 3.2, вышедшая в декабре 2012 года, представила конфигурацию Java, поддерживала Java 7, Hibernate 4, Servlet 3.0, а также требовала как минимум Java 1.5.
- Янн Карофф покинул команду в самом начале. Род Джонсон покинул “весеннюю” команду в 2012 году. Юрген Хеллер по-прежнему является активным членом команды разработчиков Spring.
- В Spring 4.0, вышедшая в 2014 году, добавили поддержку Java 8.
- Также в 2014 году миру представили Spring Boot.
- Spring 5.0 вышла в 2017 году. Как и Spring Boot 2.x, который поддерживает Spring 5.
- Собственно, таким образом наш любимый фреймворк и стал таким, каким мы знаем его сейчас.
2. Spring vs Java EE
- Приложения, написанные на Java EE, считаются более надежными, безопасными и масштабируемыми
- Java EE — утвержденный промышленностью стандарт API
- Преимущественно основан на аннотациях и CDI (context and dependency injection), как впрочем и Spring
- Реализация на основе EJB контейнеров и POJO
- Сложные приложения с большим количеством транзакций очень хорошо обрабатываются JEE
- Успешен в использовании для масштабируемого монолитного приложения
- У Java EE есть свой ООП язык, содержащий определенный стиль и синтаксис
- Очень сложная среда разработки приложений, которую сложно понять новичкам (и старичкам порой тоже)
- Окончательная стоимость проекта, включая разработку, развертывание и разработку приложений, может оказаться непомерно высокой
- Позволяет эффективно организовывать взаимодействия объектов
- Более прост, нежели Java EE
- Реализован на основе IOC и AOP, что обеспечивает слабую связанность приложений
- Работает на основе конфигурации XML, Groovy или аннотаций
- Позволяет использовать простые старые объекты Java — POJO, разработчикам не нужен корпоративный контейнер, такой как сервер приложений
- Обеспечивает разработчикам Java высокий уровень модульности
- Предоставляет реализацию библиотек Java EE, но на свой лад, благодаря чему использование их станет в разы проще
- Лицензия с открытым исходным кодом
- Spring Boot сильно упрощает первичную настройку приложения
- Код приложения Spring, как правило, прост для тестирования
- Относительно сложно развивать Spring, поскольку в нем отсутствует четкая направленность
- Для начинающего разработчика Java изучение среды Spring может быть сложной задачей (но все равно проще, чем Java EE)
- Spring медленнее, чем Java EE
Итоги сравнения
3. Компоненты Spring
Ну а сейчас давайте немного поговорим о фреймворках, из которых состоит Spring.
Spring framework
- core — базовый функционал, реализующий понятия IoC (inversion of control) и DI (dependency injection);
- AOP — Aspect-Oriented Programming — аспектно-ориентированое программирование, направленное на реализацию сквозной логики;
- MVC и WebFlux — фреймворки для веб взаимодествия;
- JDBC , ORM — технологии взаимодействия с базами данных;
- Test — функционал для прозрачного, несложного тестирования данных Spring контейнера;
- SpEL — Spring Expression Language — язык выражений Spring;
- и т.д.
Spring Boot
Упрощает создание приложений на основе Spring , сокращая до минимума первичную настройку приложения и автоконфигурирует элементы приложения на Spring. Пример запуска Spring boot за 5 минут
Spring Data
Значительно упрощает использование технологий доступа к данным, реляционных и нереляционных баз данных (убирает повторяющийся код и упрощает взаимодействие с данными). В этой статье — неплохой туториал по подключению Spring Data.
Spring Cloud
Используется в микросервисной архитектуре, упрощая взаимодействие микросервисов между собой и автоматизируя развертывание приложений на облачных платформах типа AWS , Azure и т.д. Развёрнутый туториал по Spring Cloud смотрите здесь, но предупрежу, что данная тема не из легких и ориентирована на специалистов уровня, близкого к синьору.
Spring Security
Spring GraphQL
Данный модуль обеспечивает поддержку приложений Spring, построенных на GraphQL Java. GraphQL — это язык запросов для API, позволяющий клиентам запрашивать ограниченное множество данных, в которых они нуждаются, что в свою очередь позволяет собирать данные в ограниченном количестве запросов. Если вы уже знакомы с JPA, возможно уже встречали EntityGraph, со схожей (или той же) концепцией. Подробнее о GraphQL можно почитать вот тут.
Spring Session
Данная часть фреймворка Spring предоставляет API и реализации для управления информацией о сеансе пользователя (данные сеанса пользователя сохраняются в постоянном хранилище вроде Redis , MongoDb , HazelCast и т. д). С примером использования Spring Session можно ознакомиться вот тут.
Spring Integration
Spring REST
Предоставляет богатый набор инструментов, упрощающий разработку REST API: инструменты для маршрутизации запросов, для преобразования JSON/XML в объекты требуемых типов и т.д. Пример RESTful сервиса на Spring можно найти в этом материале.
Spring Web Flow
Spring WebServices
Spring HATEOAS
Модуль предоставляет некоторые API-интерфейсы для упрощения создания REST контроллеров, которые следуют принципу HATEOAS при работе со Spring и особенно Spring MVC. HATEOAS — Hypermedia As The Engine Of Application State — Гипермедиа как двигатель состояния приложения. Использование данной библиотеки Spring вы можете увидеть здесь.
Spring Batch
Данный модуль предоставляет функционал для пакетных обработок данных (когда данные обрабатываются большими кусками — пакетами), жизненно важных для повседневной работы корпоративных систем. В Spring Batch предоставлены функции многократного использования, которые необходимы для обработки больших объемов записей, включая ведение журнала / трассировку, управление транзакциями, статистику обработки заданий, перезапуск заданий, пропуск и управление ресурсами. Интересный обзор по Spring Batch вы можете найти по этой ссылке.
Spring AMQP
Spring for Apache Kafka
Spring CredHub
Предоставляет поддержку на стороне клиента для хранения, получения и удаления учетных данных с сервера CredHub, работающего на платформе Cloud Foundry. CredHub — предоставляет API для безопасного хранения, создания, извлечения и удаления учетных данных различных типов. Spring CredHub предоставляет привязку Java для CredHub API, что упрощает интеграцию приложений Spring с CredHub.
Spring FLO
Это библиотека JavaScript, которая предлагает простой встраиваемый визуальный конструктор HTML5 для конвейеров и простых графиков для мониторинга потоковой и пакетной передачи данных. Демо данной технологии — в видео по ссылке.
Spring LDAP
Данная библиотека упрощает операции по протоколу LDAP и основана на шаблоне Spring JdbcTemplate. Фреймворк позволяет осуществлять поиск и закрытие контекста, просмотр результатов, кодирование/декодирование значений, фильтры и многое другое (построенная на тех же принципах, что и Spring Jdbc) Пример реализации Spring LDAP можно найти здесь.
Spring Roo
Spring Shell
Библиотека позволяет легко создавать полнофункциональное приложение оболочки (также известное как командная строка), полагаясь на jar-файлы Spring Shell и добавляя свои собственные команды (которые поступают как методы в Spring beans). Создание приложения командной строки может быть полезно, например, для взаимодействия с REST API вашего проекта или для работы с локальным содержимым файла. Подробнее читайте тут и тут.
Spring Statemachine
Данный модуль позволяет разработчикам приложений использовать концепции конечного автомата с приложениями Spring. Детальный пример использования данной функциональности можно найти вот тут и вот тут.
Несмотря на то, что Spring Framework часто забывают как устаревший, он по-прежнему остается популярным инструментом разработки приложений, которым пользуются корпоративные компании по всему миру. Spring предлагает беспрецедентный контроль, первоклассную безопасность и экономящую время систему зависимостей с использованием Spring Beans.
Тем не менее, Spring, как известно, труден для изучения из-за большого количества опций и сложного набора инструментов.
Сегодня мы поможем вам начать свой путь разработки Spring с учебника для начинающих о том, как и зачем использовать Spring. В конце концов, мы даже поможем вам начать работу над вашим первым весенним портфельным проектом.
Что такое Spring Framework?
Spring — это легкая среда разработки приложений с открытым исходным кодом, использующая Java Enterprise Edition (Java EE) и модель Enterprise JavaBeans (EJB).
Spring часто называют «фреймворком», потому что он поддерживает другие интегрированные фреймворки в экосистеме Java, такие как Struts, Hibernate и Tapestry. Spring поставляется во многих вариантах, которые адаптированы для конкретных целей, таких как Spring MVC, Spring Boot или Spring Security.
Spring известен своими системами внедрения зависимостей и инверсии управления (IoC), которые позволяют с легкостью создавать крупномасштабные слабосвязанные приложения. Spring особенно подходит для финансовых и корпоративных приложений благодаря своей скорости, безопасности и простоте построения транзакционных систем. Ведущими работодателями разработчиков Spring являются Citibank, eBay, Visa и JP Morgan.
В целом Spring Framework позволяет создавать приложения масштаба предприятия, которые являются безопасными и могут автоматически обрабатывать низкоуровневые функции, такие как поддержание жизненных циклов контейнеров и управление зависимостями.
Преимущества Spring
- Обычный старый объект Java (POJO) : приложения Spring просто используют обычные объекты Java, а не серверы или корпоративные контейнеры. Это делает приложения более легкими.
- Модульность IoC и MVC позволяют повторно использовать компоненты в вашем приложении без ручного управления зависимостями каждого из них.
- Сильная поддержка экосистемы Java : Spring новаторски использует уже существующие технологии, такие как ORM-фреймворки, JEE и таймеры JDK.
- Масштабируемые транзакции : Spring предлагает последовательный, масштабируемый интерфейс управления транзакциями как для локальных, так и для глобальных транзакций.
- Это включает протоколы кеширования.
- Безопасность : Простота внедрения модулей безопасности с функциями аутентификации и проверки.
- Гибкие конфигурации : можно использовать аннотации на основе Java или конфигурацию XML.
Недостатки Spring
Многие из этих недостатков были устранены с помощью изобретения модуля Spring Boot, который очень самоуверен и предназначен для микросервисных архитектур.
Большинство современных Spring-приложений построены на Boot, но есть много старых приложений, которые все еще обслуживаются давними компаниями.
Особенности Spring
- Инверсия управления (IoC) : перекладывает ответственность за зависимости с объектов на сам фреймворк. Без IoC каждый объект должен обрабатывать свой собственный экземпляр зависимости. В IoC объект просто указывает, что ему нужна определенная зависимость, и платформа настраивает и управляет ею автоматически. Это упрощает процесс разработки приложения за счет консолидации системы зависимостей и снижения нагрузки на отдельные классы.
- Аспектно-ориентированное программирование : Spring AOP позволяет иметь разные загрузчики классов для повышения модульности и разделения сквозных проблем.
- Внедрение зависимостей : процесс, который Spring использует для автоматического управления зависимостями bean-компонентов. Spring проверяет, какие bean-компоненты необходимы для работы конкретного bean-компонента, и внедряет их в качестве зависимости. Spring может выполнять внедрение зависимостей с помощью конструктора или метода установки.
- Управление жизненным циклом контейнера : автоматическое создание, управление и настройка объектов приложения.
- Поддержка MVC : поддерживает веб-архитектуру MVC, которая разделяет функциональные возможности между уровнями модели, представления и контроллера.
- Обработка ошибок : включает обработку исключений JDBC с системой иерархии исключений.
Архитектура и компоненты Spring
Давайте разберем основные части приложения Spring Framework, чтобы помочь вам увидеть общую картину.
Beans
Spring Beans — это экземпляры классов, которыми управляет Spring. Они являются наиболее фундаментальным компонентом программы Spring.
Традиционно объекты создают личные экземпляры своих зависимостей. Spring управляет всеми зависимостями объекта и создает экземпляр объекта в bean-компоненте после внедрения необходимых зависимостей. @ComponentАннотаций является наиболее распространенным методом определения бобов.
У bean-компонентов есть установленный жизненный цикл и видимость в зависимости от их области действия. Существует шесть типов областей: синглтон, прототип, запрос, сеанс, приложение и веб-сокет. Одноэлементные и прототипные области могут использоваться в любом приложении, в то время как последние четыре области доступны только для веб-приложения.
Область видимости bean-компонента по умолчанию — singleton, в которой только один экземпляр bean-компонента создается и кэшируется в памяти. Несколько запросов к компоненту возвращают общую ссылку на один и тот же компонент. Напротив, область видимости прототипа приводит к созданию новых bean-компонентов всякий раз, когда запрос на bean-компонент выполняется в контексте приложения.
Autowiring
Метод Spring по внедрению бобов в одно и другое. Spring идентифицирует зависимость выбранного bean-компонента, ищет совпадение, а затем заполняет зависимость. @AutowiredАннотаций сообщает Spring, чтобы найти и внедрить сотрудничающий боб в другой. Если доступно более одного bean-компонента одного типа, Spring выдает ошибку.
В следующем сценарии Spring обнаруживает два bean-компонента типа Operator:
IoC Container
Контейнер IoC — это платформа, которая обеспечивает функциональность инверсии управления. Контейнер IoC управляет bean-компонентами и создает все необходимые экземпляры.
Например, у нас есть класс, Vehicleкоторый зависит от другого класса, Engine.
С IoC программисту нужно только упомянуть зависимость, а Spring сделает все остальное. Контейнер IoC будет создавать экземпляры обоих классов и внедрять Engineих Vehicleв качестве зависимости.
Модули Spring и проекты Spring
Модули — это наборы инструментов, сгруппированные по назначению. Разработчики могут указать, какие модули помимо базового набора они хотели бы импортировать в качестве зависимостей для любого конкретного приложения.
Модули организованы в группы, называемые проектами. Каждый проект содержит модули, которые предназначены для работы на определенной платформе или типе приложения. Системы проектов и модулей помогают сохранить вашу программу легкой, поскольку вы можете загружать только те инструменты, которые используются в приложении.
Модули базовой архитектуры Spring Project показаны ниже, сгруппированные по их слоям:
Контейнер Spring Core включает 4 модуля, необходимых для использования Spring: Beans, Core, Context и Spring Expression Language (SpEL). Эти модули отвечают за основные функции среды Spring, такие как инверсия управления (IoC), внедрение зависимостей, интернационализация, а также за поддержку запросов к объекту во время выполнения.
Уровень доступа / интеграции Spring Data обеспечивает поддержку взаимодействия с базами данных и управления данными. Он состоит из 4 основных частей:
Веб-уровень содержит модули Веб, Сервлеты, Портлеты и Сокеты, используемые для создания веб-приложений.
Модуль Test обращается к сквозной проблеме модульного тестирования. Платформа Spring Test поддерживает тестирование с помощью JUnit, TestNG, а также создание фиктивных объектов для изолированного тестирования кода.
Модуль AOP предоставляет функции аспектно-ориентированного программирования, такие как перехват методов, pointcut, безопасность и функции ведения журнала. Spring имеет собственный модуль под названием Spring AOP, который предлагает базовые функциональные возможности аспектно-ориентированного программирования. Расширенная функциональность АОП может быть реализована за счет интеграции с AspectJ. АОП включает в себя комплексные проблемы бизнес-логики.
Помимо этого базового проекта, Spring включает проекты для всех основных вариантов использования. Эти проекты включают модули, которые слишком нишевые для базового проекта, но включают бесценные API-интерфейсы и функциональные возможности для целевого использования.
Например, Spring Cloud позволяет разрабатывать собственные облачные приложения, которые можно динамически настраивать и развертывать. Он предоставляет функциональные возможности для обработки общих шаблонов в распределенных системах. Другие проекты включают Spring Boot, Spring Security, Spring DAO, Spring Context и многие другие.
Начать работу с Spring
Теперь мы познакомим вас с вашим первым приложением Spring: простая система рекомендаций по фильмам. Настроить новый проект с помощью Spring Framework сложно, потому что вам нужно настроить полную архитектуру вручную, включая то, какие зависимости Apache Maven использовать, использовать ли XML или Java, и вы должны установить веб-сервер, такой как Tomcat.
Вместо этого мы будем использовать проект Spring Boot для автоматизации большей части процесса установки и использования его встроенного веб-сервера.
Как начать свой проект
Мы будем использовать Spring Initializr, чтобы быстро создать проект Spring Boot, используя его простое меню выбора. Сначала перейдите в start.spring.io. Вы найдете интерфейс меню, подобный приведенному ниже, с выбором настроек и полями метаданных.
После того, как вы все ввели, нажмите «Создать», чтобы создать zip-файл с архитектурой настройки. Разархивируйте папку в желаемое место на жестком диске. Эта папка будет содержать pom.xmlфайл для импорта в Eclipse IDE. Через короткое время вы увидите следующую иерархию:
- src/main/java где будет написан код Java
- src/main/resources где написаны свойства приложения
- src/test/javaгде будут написаны тесты. Теперь вы можете щелкнуть правой кнопкой мыши MovieRecommenderSystemApplication.javaи запустить его как приложение Java, чтобы получить следующий вывод консоли.
Поздравляем, вы создали свое первое приложение Spring с помощью Spring Boot!
Добавление зависимостей
Теперь мы добавим простую реализацию рекомендателя фильмов с использованием системы зависимостей Spring. Программа примет название фильма в качестве входных данных и вернет три названия фильмов того же жанра. А пока мы жестко закодируем наш вывод, чтобы вы могли сосредоточиться на изучении структуры программы.
Сначала создайте новый класс в src/main/javanamed RecommenderImplementation.
Затем мы добавим recommendMoviesметод в RecommenderImplementation. recommendMoviesМетод будет принимать строку заголовка фильма в качестве входных данных и возвращает три рекомендации в массиве String.
Используйте жестко запрограммированную реализацию ниже:
Теперь создайте экземпляр RecommenderImplementationкласса в MovieRecommenderSystemApplicationфайле, а затем вызовите recommendMoviesметод через RecommenderImplementationкласс.
А пока мы жестко запрограммируем getRecommendations возврат тех же трех фильмов.
Теперь мы можем использовать методы ContentBasedFilterкласса в RecommenderImplementationклассе. Замените предыдущую жестко запрограммированную реализацию recommendMoviesследующей реализацией на основе зависимостей.
Наконец, мы добавим toStringметод к mainметоду, чтобы сделать массив String доступным для чтения в качестве вывода.
До появления Enterprise Java Beans (EJB) разработчики Java должны были использовать JavaBeans для создания веб-приложений. Хотя JavaBeans помогли в разработке компонентов пользовательского интерфейса (UI), они не смогли предоставить такие услуги, как управление транзакциями и безопасность, которые были необходимы для разработки надежных и безопасных корпоративных приложений. Появление EJB рассматривалось как решение этой проблемы. EJB расширяет компоненты Java, такие как веб-компоненты и корпоративные компоненты, и предоставляет сервисы, которые помогают в разработке корпоративных приложений. Однако разработка корпоративного приложения с EJB была непростой задачей, так как разработчику нужно было выполнять различные задачи, такие как создание интерфейсов Home и Remote и реализация методов обратного вызова жизненного цикла, которые приводят к сложности предоставления кода для EJB. Из-за этого усложнения разработчики начали ищу более простой способ разработки корпоративных приложений.
Среда Spring может рассматриваться как набор подструктур, также называемых слоями, таких как Spring AOP. Spring Object-Relational Mapping (Spring ORM). Spring Web Flow и Spring Web MVC. Вы можете использовать любой из этих модулей отдельно при создании веб-приложения. Модули также могут быть сгруппированы для обеспечения лучшей функциональности в веб-приложении.
Особенности Spring Framework
Функции Spring Framework, такие как IoC, AOP и управление транзакциями, делают его уникальным среди списка платформ. Некоторые из наиболее важных особенностей среды Spring:
Эволюция Spring Framework
Spring Framework Архитектура
Каркас Spring состоит из семи модулей, которые показаны на рисунке выше. К этим модулям относятся Spring Core, Spring AOP, Spring Web MVC, Spring DAO, Spring ORM, Spring Spring и Spring Web flow. Эти модули предоставляют разные платформы для разработки различных корпоративных приложений; например, вы можете использовать модуль Spring Web MVC для разработки приложений на основе MVC.
Читайте также: