All streams
Search
Write a publication
Pull to refresh
49
63.3
Spring АйО @spring_aio

Главный по Spring

Send message

Spring Boot 3.3: повышение производительности, безопасности и  observability

Level of difficultyEasy
Reading time4 min
Views3.7K

Команда Spring АйО продолжает следить за выходом новых версий популярных технологий. В новом переводе рассказали про основные улучшения, которые вошли в состав Spring Boot 3.3. Среди них:

Поддержка Class Data Sharing (CDS)

Улучшение производительности виртуальных потоков для web-сокетов

Новые свойства для настройки Spring Data JDBC, GraphQL websocket, WebFlux и Tomcat

Читать далее

JPA Entity. Загрузи меня не полностью

Level of difficultyEasy
Reading time16 min
Views11K

JPA часто подвергается критике за невозможность загружать сущности частично, что на самом деле является большим заблуждением. Spring Data JPA и Hibernate включают в себя множество инструментов по частичной загрузке сущностей. 

Команда Spring АйО подготовила статью, в которой рассмотрела имеющиеся в Spring Data JPA инструменты для частичной загрузки сущностей, а также разобрала их особенности и corner-кейсы.

Читать далее

Состояние Spring в 2024 году

Level of difficultyEasy
Reading time17 min
Views14K

Команда Spring АйО перевела важнейший документ для Spring-разработчиков!

В начале июня компания VMWare, владеющая Spring, опубликовала результаты исследования, в котором приняло учатие более 1,500 разработчиков по всему миру. Отчёт получился действительно интересным и всеобъемлющим. Были рассмотрены как базовые темы, такие как выбор архитектурных подходов и типов API, так и продвинутые, такие как компиляция в Native Image и использование Spring вместе с Kubernetes.

Читать далее

Генерация HTTP клиентов для Spring Boot приложения по OpenAPI спецификации

Level of difficultyEasy
Reading time9 min
Views9.7K

В новом переводе от команды Spring АйО вы узнаете, как можно сгенерировать код HTTP клиентов для Spring Boot приложения по OpenAPI спецификации, используя плагин openapi-generator для Gradle.

В статье вы найдете:

1. Пошаговую инструкцию по использованию openapi-generator для Gradle

2. Настройки для генератора, которые помогут оставить только нужный код

3. Пример конфигурации сгенерированных Spring-бинов

Читать далее

Soft Assertions в AssertJ

Level of difficultyEasy
Reading time5 min
Views4.5K

Бывало ли у вас такое, что тест падает на первом же assertion'e из десяти? Вы исправляете ошибку, запускаете тест снова, и он падает на втором assertion'e. И так десять раз. Выматывает, не так ли?

На самом деле, есть способ ускорить этот процесс — использовать Soft Assertions. С их помощью тест выполнится полностью, даже если один или несколько assertion'ов упадут, и вы сразу увидите все ошибки.

В новой статье от Михаила Поливахи, эксперта сообщества Spring АйО, вы узнаете, что такое Soft Assertions и как ими пользоваться.

Читать далее

Declarative Gradle: рывок или прорыв?

Level of difficultyEasy
Reading time12 min
Views9.5K

Полгода назад команда Gradle представила новый продукт — Declarative Gradle. Команда Spring АйО, со своей стороны, провела исследование и готова поделиться результатами. 

TL;DR: технология всё ещё активно развивается, но пока что не поддерживается привычными инструментами, такими как IntelliJ IDEA. Несмотря на это, нам удалось запустить Spring Boot приложение!

Читать далее

7 основных способов оптимизировать кеширование в Spring Boot

Level of difficultyEasy
Reading time10 min
Views14K

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

В новом переводе от команды Spring АйО вы узнаете про 7 основных техник оптимизации кеширования в Spring Boot, которые могут помочь значительно улучшить производительность. От выбора идеальных кандидатов для кеширования до реализации асинхронного кеша и мониторинга метрик кеша.

Читать далее

Переписывая историю: от инструментов версионирования БД к практике

Level of difficultyEasy
Reading time23 min
Views5K

Пожалуй, почти каждый Spring разработчик сталкивается в своей практике с версионированием баз данных. На эту тему есть отличный доклад на Joker 2023 от Александра Шустанова, в котором спикер сравнивает 2 самых популярных инструмента для миграций БД: Flyway и Liquibase. Редакция Spring АйО приводит транскрипт доклада, для тех, у кого нет 45 минут для просмотра видео.

В статье вас ожидает обзор ключевых особенностей Liquibase и Flyway, а также сравнение их возможностей. Расскажем, когда нужно создавать миграции, как облегчить этот процесс и уменьшить количество ошибок. Осветим некоторые малоизвестные возможности этих инструментов и развеем мифы о других.

Читать далее

Устойчивость микросервисных Spring приложений: роль аннотации @Transactional в предотвращении утечки соединений

Level of difficultyEasy
Reading time5 min
Views6.7K

В новом переводе от команды Spring АйО вы узнаете, как аннотация @Transactional помогла решить проблему с утечкой соединений и обеспечила стабильность системы.

Читать далее

Markdown в IntelliJ IDEA как отдельный вид искусства. Рисуем диаграммы и вызываем bash команды

Level of difficultyEasy
Reading time3 min
Views14K

Spring разработчики часто пишут документацию и README/HELP файлы к своим приложениям. Часто это делается в Markdown файлах. Markdown плагин в IntelliJ IDEA распознает файлы, предоставляет специальный редактор с подсветкой, автокомплитом и форматированием, а также дает визуальное отображение в панели предварительного просмотра в реальном времени. Кроме стандартной функциональности в IntelliJ IDEA есть пару уникальных фич, которые команда Spring АйО хотела бы выделить особенно.

Читать далее

Новый компилятор K2 в Kotlin. Часть 2. Гайд по миграции

Level of difficultyMedium
Reading time7 min
Views4.2K

В этой статье эксперт сообщества Spring АйО – Михаил Поливаха рассмотрит процесс миграции с компилятора Kotlin старой версии на новый компилятор K2. В предыдущей статье Михаил рассмотрел компилятор K2, а здесь сфокусировался только на процедуре миграции.

Читать далее

Почему String Templates не будет в Java 23?

Level of difficultyEasy
Reading time8 min
Views7.2K

Неожиданный поворот в поддержке StringTemplates в JDK 23. Команда Java решила отказаться от функциональности, которая есть в большинстве современных языках программирования. Почему так произошло? Кажется, из-за слишком большой гибкости, которую заложили на ранних этапах разработки, а также, нежелания просто сделать “синтаксический сахар” для строковой интерполяции. А чего же хотели разработчики на самом деле? Нам кажется, что все-таки - последнего. Сообщество Spring АйО представляет перевод почтовой переписки Гэвина Бирмана и Брайана Гоеца, в которой решается судьба Spring Templates. 

Читать далее

Разработка ПО действительно так сложна? Или это мы делаем ее такой?

Level of difficultyEasy
Reading time9 min
Views13K

В новом переводе от команды Spring АйО, Siva Katamreddy, девелопер адвокат в AtomicJar (Testcontainers), поделился своими мыслями о популярных в наши дни TDD, Clean, Hexagonal, Onion и Ports & Adapters. Он также постарался ответить на вопрос, который, возможно, волнует не только его: "Действительно ли мы, разработчики, так любим всё усложнять?".

Читать далее

Эффективность Spring-приложений в рантайме. Текущее состояние дел и планы на будущее

Level of difficultyMedium
Reading time12 min
Views11K

Несмотря на то, что данная статья была опубликована более полугода назад, команда Spring АйО по-прежнему считает ее актуальной, важной и интересной.

Себастьян Делойзе, контрибьютор Spring Framework, делится обзором усилий команды Spring по оптимизации эффективности приложений во время выполнения. Он рассматривает Virtual Threads, GraalVM Native Image, Project CRaC, Project Leyden и всё это в контексте Spring!

Читать далее

Новый компилятор K2 в Kotlin. Часть 1

Level of difficultyMedium
Reading time7 min
Views7.3K

В этой статье эксперт сообщества Spring АйОМихаил Поливаха рассмотрит новый компилятор К2 для Kotlin. В первую очередь он расскажет про то, какие проблемы должен решить новый компилятор, а потом про его дополнительные улучшения, которые дает эта версия. Гайд по миграции на новую версию будет опубликован в следующей части этой статьи.

Читать далее

Spring Boot 3.2: замените свой RestTemplate на RestClient

Level of difficultyEasy
Reading time4 min
Views21K

Эта статья по Spring Boot 3.2 посвящена надстройке над  WebClient, которая называется RestClient и представляет собой более интуитивный и современный подход взаимодействия с RESTful сервисами.

В мире Spring Boot отправка HTTP запросов к внешним сервисам является весьма распространенной задачей. Традиционно при достижении этой цели разработчики полагались на  RestTemplate. Однако, по мере развития Spring Framework, на свет появился новый и более мощный способ обработки HTTP запросов: так называемый  WebClient. Spring Boot 3.2 представил нам надстройку над  WebClient, которая получила название RestClient. 

RestClient предлагает нам более современные и интуитивно понятные способы взаимодействия с RESTful сервисами. 

Читать далее

Hibernate и спецификация JPA: приключение на 20 минут

Reading time3 min
Views5.9K

На прошлой неделе в блоге сообщества Spring АйО вышла статья-перевод про интересный кейс падения производительности при переходе на Hibernate 6.5. Оказалось, что выражения вида publisherId in :ids при пустом ids приводит к серьезной деградации производительности. Баг вскоре был пофикшен, однако, не дает покоя вопрос, почему так произошло?
Ниже приводим историю появления и незамедлительного решения этой проблемы, от лица Гэвина Кинга, создателя Hibernate.

Читать далее

Уязвимость в плагине JetBrains GitHub

Reading time2 min
Views7.6K

Была обнаружена новая проблема безопасности, затрагивающая плагин JetBrains GitHub, потенциально приводящая к раскрытию токенов доступа сторонним сайтам. Проблема затрагивает все IDE на базе IntelliJ начиная с версии 2023.1, если у них включен и настроен/используется плагин JetBrains GitHub. 

Проблема уже устранена, и для всех IDE на базе платформы IntelliJ, начиная с версии 2023.1, выпущено обновление, содержащее исправление.

Читать далее

Катастрофа с Hibernate 6.5 при обновлении на Spring Boot 3.3.0

Level of difficultyEasy
Reading time2 min
Views9.3K

Обновившись до Spring Boot 3.3.0 (конкретно до Hibernate 6.5), мы столкнулись со 100% загрузкой процессора на БД из-за небольшого изменения в SQL коде, сгенерированного Hibernate после преобразования JPQL в SQL.

Читать далее

Java-рантаймы с точки зрения Spring Boot

Level of difficultyEasy
Reading time10 min
Views7.3K

На первый взгляд, выбор правильного Java-рантайма для вашего проекта на Spring Boot может показаться тривиальным. В конце концов, все популярные рантаймы основываются на коде OpenJDK и предлагают одинаковые программные интерфейсы (от англ. Application Programming Interface).

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

Оригинал статьи написан на английском языке Aleksey Stukalov, который является Team Lead’ом проекта IntelliJ IDEA в компании JetBrains, и Catherine Edelveis, работающей Developer Advocate в компании BellSoft, в соавторстве.

Читать далее

Information

Rating
105-th
Works in
Registered
Activity