Перейти к основному содержимому

· 9 мин. чтения

1. Обзор

В Java 8 появился Stream API , который позволяет легко перебирать коллекции как потоки данных. Также очень легко создавать потоки, которые выполняются параллельно и используют несколько ядер процессора.

Можно подумать, что всегда быстрее разделить работу на большее количество ядер. Но это часто не так.

В этом руководстве мы рассмотрим различия между последовательными и параллельными потоками. Сначала мы рассмотрим пул fork-join по умолчанию, используемый параллельными потоками.

Мы также рассмотрим последствия использования параллельного потока для производительности, включая локальность памяти и затраты на разделение/слияние.

Наконец, мы порекомендуем, когда имеет смысл преобразовать последовательный поток в параллельный.

· 9 мин. чтения

1. Введение

В этой статье мы рассмотрим, как выполнять запросы к реляционным базам данных с помощью JDBC , используя идиоматический Groovy.

JDBC, хотя и является относительно низкоуровневым, является основой большинства ORM и других высокоуровневых библиотек доступа к данным на JVM. И мы, конечно, можем использовать JDBC непосредственно в Groovy; однако у него довольно громоздкий API.

К счастью для нас, стандартная библиотека Groovy основана на JDBC и представляет собой чистый, простой, но мощный интерфейс. Итак, мы будем изучать модуль Groovy SQL.

Мы рассмотрим JDBC в простом Groovy, не принимая во внимание какой-либо фреймворк, такой как Spring, для которого у нас есть другие руководства .

2. Настройка JDBC и Groovy

· 4 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим распространенный вариант использования Mockito ArgumentCaptor в наших модульных тестах.

Кроме того, для других вариантов использования Mockito.verify см. нашу кулинарную книгу Mockito Verify .

2. Использование ArgumentCaptor

· 3 мин. чтения

1. Обзор

В этом руководстве мы собираемся описать различия между Spring Cloud Netflix Feign и Spring Cloud OpenFeign .

2. Притворяться

Feign упрощает написание клиентов веб-сервисов, предоставляя поддержку аннотаций , которая позволяет нам реализовывать наши клиенты только с интерфейсами.

Первоначально Feign был создан и выпущен Netflix в рамках их проекта Netflix OSS . Сегодня это проект с открытым исходным кодом.

· 5 мин. чтения

1. Обзор

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

В этом руководстве мы увидим два свойства YAML, которые позволяют нам настраивать сеть между контейнерами — expose и ports . Мы подробно опишем их, покажем основные варианты использования и выделим их ключевые отличия.

2. открыть раздел

Во-первых, давайте посмотрим на конфигурацию expose . Это свойство определяет порты, которые Docker Compose предоставляет из контейнера.

· 5 мин. чтения

1. Обзор

В этом руководстве мы узнаем, как использовать политику перезапуска с Docker Compose .

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

2. Политика перезапуска Docker

Политики перезапуска — это стратегии, которые мы можем использовать для автоматического перезапуска контейнеров Docker и управления их жизненным циклом.

· 5 мин. чтения

1. Введение

Spring WebFlux — это новая функциональная веб-инфраструктура, построенная с использованием реактивных принципов.

В этом уроке мы научимся работать с ним на практике.

Мы будем основываться на нашем существующем руководстве по Spring 5 WebFlux . В этом руководстве мы создали простое реактивное приложение REST с использованием компонентов на основе аннотаций. Здесь мы будем использовать вместо этого функциональную структуру.

2. Зависимость от Maven

· 5 мин. чтения

1. Обзор

Начиная с Spring 2.5, в фреймворке появилась управляемая аннотациями Dependency Injection . Основная аннотация этой функции — @Autowired . Это позволяет Spring разрешать и внедрять сотрудничающие компоненты в наш компонент.

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

2. Включение аннотаций @Autowired

· 8 мин. чтения

1. Введение

Kinesis — это инструмент для сбора, обработки и анализа потоков данных в режиме реального времени, разработанный в Amazon. Одним из его основных преимуществ является то, что он помогает в разработке приложений, управляемых событиями.

В этом руководстве мы рассмотрим несколько библиотек, которые позволяют нашему приложению Spring создавать и использовать записи из Kinesis Stream . В примерах кода показаны основные функциональные возможности, но не представлен готовый к использованию код.

2. Обязательное условие

Прежде чем двигаться дальше, нам нужно сделать две вещи.

· 7 мин. чтения

1. Обзор

В этом кратком руководстве мы узнаем о различных типах областей действия компонентов в среде Spring.

Область действия bean-компонента определяет жизненный цикл и видимость этого bean-компонента в контекстах, в которых мы его используем.

Последняя версия фреймворка Spring определяет 6 типов областей видимости:

  • синглтон
  • прототип
  • запрос
  • сеанс
  • заявление
  • веб-сокет

Последние четыре упомянутые области, request, session, application и websocket , доступны только в веб-приложении.