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

348 записей с тегом "Spring+"

Посмотреть все теги

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

1. Введение

В этой статье мы объясним, как Spring WebFlux взаимодействует с аннотацией @Cacheable . Во-первых, мы рассмотрим некоторые распространенные проблемы и способы их избежать. Далее мы рассмотрим доступные обходные пути. Наконец, как всегда, мы приведем примеры кода.

2. @Cacheable и реактивные типы

Эта тема еще относительно новая. На момент написания этой статьи не было полной интеграции между @Cacheable и реактивными фреймворками. Основная проблема заключается в отсутствии неблокирующих реализаций кеша (API кеша JSR-107 блокирует). Только Redis предоставляет реактивный драйвер.

Несмотря на проблему, о которой мы упоминали в предыдущем абзаце, мы по-прежнему можем использовать @Cacheable в наших методах обслуживания. Это приведет к кэшированию наших объектов-оболочек ( Mono или Flux ), но не кеширует фактический результат нашего метода.

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

1. Обзор

Современные приложения не живут изолированно: обычно нам нужно подключаться к различным внешним компонентам, таким как PostgreSQL, Apache Kafka, Cassandra, Redis и другим внешним API.

В этом руководстве мы увидим, как Spring Framework 5.2.5 облегчает тестирование таких приложений с введением динамических свойств .

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

2. Проблема: динамические свойства

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

1. Обзор

Обычно мы используем аннотации JUnit, такие как @BeforeEach, @AfterEach, @BeforeAll и @AfterAll, для управления жизненным циклом тестов, но иногда этого недостаточно, особенно когда мы работаем с инфраструктурой Spring.

Вот где Spring TestExecutionListener пригодится.

В этом руководстве мы увидим, что предлагает TestExecutionListener , прослушиватели по умолчанию, предоставляемые Spring, и как реализовать собственный TestExecutionListener .

2. Интерфейс TestExecutionListener

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

1. Обзор

В этой статье речь пойдет о работе с ETags в Spring , интеграционном тестировании REST API и сценариях потребления с помощью curl .

2. REST и ETag

Из официальной документации Spring по поддержке ETag:

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

1. Обзор

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

Если вам нужны общие сведения о Spring Batch и Scheduler, обратитесь к статьям Spring-Batch и Spring-Scheduler .

2. Запустите запланированное пакетное задание Spring

Во-первых, у нас есть класс SpringBatchScheduler для настройки планирования и пакетного задания. Метод launchJob() будет зарегистрирован как запланированная задача.

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

1. Обзор

Проще говоря, ядро Spring Framework — это контейнер IoC, используемый для управления bean-компонентами.

В Spring есть два основных типа контейнеров — Bean Factory и Application Context. Первый предоставляет базовые функции, которые представлены здесь ; последний является надмножеством первого и наиболее широко используется.

ApplicationContext — это интерфейс в пакете org.springframework.context , который имеет несколько реализаций, и ClassPathXmlApplicationContext — одна из них.

В этой статье мы сосредоточимся на полезных функциях, предоставляемых ClassPathXmlApplicationContext .

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

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

1. Введение

Начиная с JUnit 4 , тесты можно запускать параллельно, чтобы увеличить скорость для больших наборов. Проблема заключалась в том, что параллельное выполнение тестов не полностью поддерживалось Spring TestContext Framework до Spring 5 .

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

2. Настройка Мавена

Напоминаем, что для параллельного запуска тестов JUnit нам нужно настроить плагин maven-surefire-plugin для включения этой функции:

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

./6fa0ab2c3dc26978c581de4eb8ecd389.png

** ** Творческие шаблоны

./d3ecf4786a3a577cbb6c494848defd39.png


Структурные модели

./5b90d3d93602ced5597ebdcdccbe4853.png


Поведенческие модели

./5393b9f8826bfad1015232cde1d2018a.png


Другие архитектурные шаблоны

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

1. Обзор

В любом современном браузере совместное использование ресурсов между источниками (CORS) является актуальной спецификацией с появлением клиентов HTML5 и JS, которые потребляют данные через REST API.

Часто хост, который обслуживает JS (например, example.com), отличается от хоста, который обслуживает данные (например, api.example.com). В таком случае CORS обеспечивает междоменное взаимодействие.

Spring обеспечивает первоклассную поддержку CORS, предлагая простой и эффективный способ его настройки в любом веб-приложении Spring или Spring Boot.

2. Конфигурация CORS метода контроллера

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

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

Приложение помогает пользователям управлять своими публикациями в Reddit , планируя публикации, определяя лучшее время для публикации, повторяя публикации, когда они сразу не работают, и т. д.

./1226b4ebcc296e75243107cfb55abbb5.png

Основные настройки и операции

./d5b6be34ce3e170ce958ab8c19920e81.png

Расширенные варианты использования

./8b38496cd8d74138bab13bd222c0ab2e.png

Улучшения