[SpringBoot от входа до мастерства] Глава 1 Spring и SpringBoot

1. Весна и SpringBoot

1.1 Краткое описание Spring

В разных контекстах Spring представляет разные значения. Далее мы представим Spring с точки зрения «широкого» и «узкого» смысла.

Официальный сайт весны: https://spring.io/

1.1.1 Spring в широком смысле: стек технологий Spring

Spring в широком смысле относится к стеку технологий Spring, ядром которого является Spring Framework.

После более чем десяти лет разработки Spring перестал быть чистой средой приложений, а постепенно превратился в зрелую технологию, состоящую из нескольких различных подпроектов (модулей), таких как Spring Framework, Spring MVC, SpringBoot, Spring Cloud, Spring. Data, Spring Security и др., среди которых Spring Framework является основой других подпроектов.

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

название проекта описывать
Весенние данные Модуль доступа к данным, предоставляемый Spring, обеспечивает хорошую поддержку JDBC и ORM. Благодаря ему разработчики могут использовать относительно унифицированный способ доступа к данным, расположенным в разных типах баз данных.
Весенняя партия Облегченная платформа для ежедневных задач пакетной обработки в системах корпоративного уровня, которая может помочь разработчикам легко разрабатывать надежные и эффективные приложения пакетной обработки.
Весенняя безопасность Ранее известный как Acegi, это один из наиболее зрелых подмодулей Spring. Это настраиваемая структура аутентификации и контроля доступа.
Спринг Мобайл Это расширение Spring MVC для упрощения разработки мобильных веб-приложений.
Весенний ботинок Это новый фреймворк, предоставленный командой Spring, который предоставляет готовую конфигурацию для Spring и сторонних библиотек, что может упростить процесс создания и разработки приложений Spring.
Весеннее облако Фреймворк микросервисов на основе Spring Boot. Это не определенная технология, а упорядоченный набор из серии микросервисных решений или фреймворков. Он интегрирует зрелые и проверенные на рынке фреймворки микросервисов и переупаковывает их с помощью идеи Spring Boot, защищая сложные принципы конфигурации и реализации, и, наконец, предоставляет разработчикам набор простых, понятных и легких в использовании -deploy И простой в обслуживании комплект для разработки распределенных систем.

1.1.2 Spring в узком смысле: Spring Framework

Spring в узком смысле относится конкретно к Spring Framework, который мы обычно называем Spring Framework.

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

Spring состоит из двух основных частей: IOC и AOP.

основной описывать
МОК Аббревиатура Inversion of Control, переводится как «инверсия управления», относится к передаче процесса создания объектов Spring для управления.
АОП Аббревиатура Aspect Oriented Programming, переводится как «аспектно-ориентированное программирование». АОП используется для инкапсуляции общедоступного поведения нескольких классов и инкапсуляции логики, которая не имеет ничего общего с бизнесом, но обычно вызывается бизнес-модулями, чтобы уменьшить дублирование кода в системе и уменьшить связь между модулями. Кроме того, АОП также решает некоторые проблемы системного уровня, такие как журналы, транзакции, разрешения и т. д.

1.2 Что может сделать Spring

1.2.1 Возможности Spring

вставьте сюда описание изображения

  1. Микросервисы Архитектура микросервисов. Быстрое предоставление функциональных возможностей производственного уровня с помощью независимо разрабатываемых микросервисов. Возможности Spring Boot упрощают создание и запуск микросервисов в масштабе производственной среды. На основе этого Spring Cloud помогает микросервисным приложениям еще больше упростить управление и повысить отказоустойчивость.

  2. Реактивное реактивное программирование: асинхронная неблокирующая архитектура Spring означает, что вы можете получить больше от своих вычислительных ресурсов. Это новая концепция разработки и технология, основанная на асинхронности, неблокировке.

  3. Облако: ваш код, любое облако — мы обеспечим вас. Подключайте и расширяйте свои услуги независимо от того, какую платформу вы используете. Разработка распределенных микросервисных систем может быть сложной задачей. Сложность перемещается с прикладного уровня на сетевой уровень и требует большего взаимодействия между службами. Spring Cloud включает в себя множество сервисов, необходимых для запуска приложений в облаке, помогая создавать облачные среды.

  4. Веб-приложения: платформа для быстрых, безопасных и быстро реагирующих веб-приложений, подключенных к любому хранилищу данных. Это наш наиболее часто используемый модуль. Spring предоставляет Spring MVC, который позволяет нам избавиться от утомительного метода разработки с использованием Servlet ранее и завершить разработку веб-приложений с помощью более лаконичного и элегантного API.

  5. Бессерверное программирование без сервера: максимальная гибкость, масштабирование по запросу и масштабирование до нуля, когда нет спроса. Бессерверные приложения используют преимущества современных возможностей облачных вычислений и абстракций, позволяя приложениям больше сосредоточиться на бизнес-логике, чем на инфраструктуре. Spring Cloud Function предоставляет разработчикам Spring возможность использовать бессерверные платформы или платформы FaaS.

  6. События, управляемые событиями: Интеграция с вашим предприятием. Реагируйте на деловые события. Обрабатывайте потоковые данные в режиме реального времени. Системы, управляемые событиями, отражают то, как на самом деле работают современные предприятия, и широко используются в архитектурах микросервисных приложений. Spring помогает разработчикам создавать приложения на основе событий.В Spring есть много проектов, управляемых событиями, таких как Streaming, Integration и Data Flow.

  7. Пакет: Автоматизируйте задачи. После того, как подходит для вашей автономной обработки данных. Пакетная обработка позволяет эффективно обрабатывать большие объемы данных, а стандартный режим обработки Spring Batch помогает разработчикам создавать надежные пакетные задания и критически важные приложения на JVM.

1.2.2 Экология весны

покрытый:

  • Веб-разработка
  • доступ к данным
  • безопасно контролировать
  • распределенный
  • служба сообщений
  • мобильная разработка
  • пакетная обработка

1.3 Основное обновление Spring5

1.3.1 Реактивное программирование

вставьте сюда описание изображения

На картинке выше показано сравнение между Spring MVC и Spring WebFlux, официально предоставленное Spring.Сначала посмотрите на верхнюю информацию описания, а справа — описание Spring MVC:

Spring MVC построен на API-интерфейсе сервлетов и использует архитектуру синхронного блокирующего ввода-вывода с моделью «один запрос на поток» (перевод: Spring MVC построен на API-интерфейсе сервлета с использованием архитектуры синхронного блокирующего ввода-вывода, каждый поток -модель с одним запросом.)

Слева описание Spring WebFlux:

Spring WebFlux — это неблокирующая веб-инфраструктура, созданная с нуля, чтобы использовать преимущества многоядерных процессоров нового поколения и обрабатывать огромное количество одновременных подключений (перевод: Spring WebFlux — это неблокирующая веб-инфраструктура, созданная с нуля, Он использует многоядерные процессоры нового поколения и обрабатывает большое количество одновременных подключений.)

В качестве дополнения к веб-инфраструктуре реактивного стека Spring WebFlux был добавлен в корзину семейства Spring, начиная с версии 5.0.

Это полностью неблокирующий контейнер с поддержкой Reactive Streams, который работает на таких контейнерах, как Netty, Undertow и Servlet 3.1+. Spring WebFlux позволяет использовать меньше потоков для обработки одновременных запросов и в то же время позволяет использовать меньше аппаратных ресурсов для расширения вашего приложения.

Весенний МВК

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

Весенний веб-флюкс

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

Spring MVC или WebFlux?

WebFlux не является заменой Spring MVC, он в основном применяется в модели асинхронного неблокирующего программирования. Если ваш проект не является этой моделью или ваше приложение в настоящее время достаточно, чтобы справиться с текущей ситуацией, нет необходимости переходить на WebFlux. Чиновник также дал несколько пунктов для внимания в этом выборе:

вставьте сюда описание изображения

Тот же пункт:

1. Аннотации Spring MVC, такие как @Controller, можно использовать для облегчения свободного преобразования между двумя веб-фреймворками;

2. Можно использовать контейнеры Tomcat, Jetty, Undertow Servlet (Servlet 3.1+);

3,…

разница:

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

2. WebFlux запускается Netty по умолчанию, и порт по умолчанию автоматически устанавливается на 8080. Он также обеспечивает поддержку таких контейнеров, как Jetty и Undertow. Разработчик может настроить и использовать соответствующий встроенный экземпляр контейнера, добавив соответствующую зависимость компонента Starter контейнера.

Но обратите внимание, что это должен быть контейнер Servlet 3.1+, такой как Tomcat, Jetty, или не-Servlet контейнер, такой как Netty и Undertow.

3. Стартовый компонент

Webflux предоставляет множество готовых компонентов Starter. Начальные компоненты — это зависимости Maven, которые можно загрузить в приложение. Вам нужно только добавить соответствующую конфигурацию зависимостей в конфигурацию Maven, чтобы использовать соответствующий компонент Starter. Например, добавление spring-boot-starter-webfluxзависимостей можно использовать для создания отзывчивых служб API, включая встроенные контейнеры Web Flux и Tomcat.

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

  • Интернет: Spring WebFlux
  • Движок шаблона: Thymeleaf
  • Хранилище: Redis, MongoDB, Cassandra. не поддерживает MySQL
  • Встроенный контейнер: Tomcat, Jetty, Undertow

1.3.2 Дизайн внутреннего исходного кода

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

Базовой версией Spring Framework 4.x является Java SE 6. Это означает, что он поддерживает Java 6, 7 и 8. Должны поддерживаться ограничения Java SE 6 и 7 для кода Spring Framework. Код фреймворка не может использовать какие-либо новые функции в Java 8. Таким образом, когда остальной мир переходит на Java 8, код в Spring Framework (по крайней мере, основная часть) ограничен использованием более ранних версий Java.

В Spring Framework 5.0 базовой версией является Java 8. Код Spring Framework теперь обновлен для использования новых функций Java 8. Более читаемый и эффективный код фреймворка будет улучшен. Вот некоторые из используемых функций Java 8:

  • Статические методы Java 8 в основных интерфейсах Spring.
  • Улучшения внутреннего кода на основе улучшений отражения Java 8.
  • Используйте функциональное программирование в коде фреймворка — лямбда-выражения и потоки.

1.4 Зачем использовать SpringBoot

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

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

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

Spring Boot упрощает создание автономных приложений производственного уровня на основе Spring, которые можно «просто запустить».
Мы оцениваем платформу Spring и сторонние библиотеки, чтобы вы могли начать работу с минимальными усилиями. Большинству приложений Spring Boot требуется очень небольшая конфигурация Spring.

Spring Boot — это отправная точка для всех проектов разработки на основе Spring.

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

Spring Boot предназначен не для замены среды Spring, а для упрощения процесса интеграции среды Spring с другими сторонними библиотеками и средами.

Spring Boot использует концепцию «кастомная лучше, чем конфигурация» (в проекте много конфигураций, а также есть встроенная кастомная конфигурация, так что она вам не нужна), чтобы ваш проект работал быстро.

Spring Boot не является новым фреймворком, но по умолчанию настраивает использование многих фреймворков.Так же, как Maven интегрирует все пакеты jar, Spring Boot интегрирует все фреймворки.

1.4.1 Преимущества SpringBoot

Оглядываясь назад на наш предыдущий проект SSM, процесс строительства по-прежнему относительно громоздкий и требует:

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

С помощью Spring Boot можно легко создать автономный (работающий JAR-файл, встроенный контейнер сервлетов) квази-рабочий уровень проекта на основе среды Spring. С Spring Boot вам не нужна или требуется очень небольшая конфигурация Spring.

  • Создание автономных приложений Spring
    • Создайте отдельное приложение Spring
  • Встраивайте Tomcat, Jetty или Undertow напрямую (не нужно развертывать файлы WAR)
    • Встроенный веб-сервер
  • Обеспечьте самоуверенные «стартовые» зависимости, чтобы упростить конфигурацию сборки.
    • Автоматическая стартовая зависимость, упрощающая настройку сборки
  • Автоматически настраивайте Spring и сторонние библиотеки, когда это возможно.
    • Автоматически настраивайте Spring и сторонние функции
  • Предоставляйте готовые к работе функции, такие как метрики, проверки работоспособности и внешняя конфигурация.
    • Обеспечивает мониторинг производственного уровня, проверку работоспособности и внешнюю настройку.
  • Абсолютно без генерации кода и без необходимости конфигурации XML
    • Нет генерации кода, нет необходимости писать XML

1.4.2 Недостатки SpringBoot

  • Быстрая итерация требует постоянного внимания к изменениям.
  • Пакет слишком глубокий, внутренние принципы сложны, и его нелегко освоить.

1.5 Концепция микросервисов

Джеймс Льюис (James Lewis) и Мартин Фаулер (Martin Fowler) придумали полную концепцию микросервисов.

  • Микросервисы — это архитектурный стиль;
  • Приложение разделено на набор небольших сервисов;
  • Каждая служба работает в своем собственном процессе, то есть может развертываться и обновляться независимо;
  • Используйте облегченное HTTP-взаимодействие между сервисами;
  • Услуги разделены по бизнес-функциям;
  • Может быть развернут независимо с помощью полностью автоматического механизма развертывания;
  • Децентрализация, сервисная автономия. Сервисы могут использовать разные языки, разные технологии хранения.

Дополнительные сведения см. в документации по микросервису.

Supongo que te gusta

Origin blog.csdn.net/ligonglanyuan/article/details/125910928
Recomendado
Clasificación