Pull to refresh
21
98.7
Spring АйО @spring_aio

Главный по Spring

Send message

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

Level of difficultyEasy
Reading time23 min
Views1.3K

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

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

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments9

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

Level of difficultyEasy
Reading time5 min
Views4.2K

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

Читать далее
Total votes 13: ↑11 and ↓2+11
Comments11

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

Level of difficultyEasy
Reading time3 min
Views10K

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

Читать далее
Total votes 21: ↑20 and ↓1+19
Comments13

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

Level of difficultyMedium
Reading time7 min
Views3K

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

Читать далее
Total votes 14: ↑14 and ↓0+16
Comments0

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

Level of difficultyEasy
Reading time8 min
Views4.6K

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments19

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

Level of difficultyEasy
Reading time9 min
Views11K

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

Читать далее
Total votes 30: ↑27 and ↓3+27
Comments64

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

Level of difficultyMedium
Reading time12 min
Views7K

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

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

Читать далее
Total votes 19: ↑18 and ↓1+18
Comments0

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

Level of difficultyMedium
Reading time7 min
Views5.3K

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

Читать далее
Total votes 18: ↑18 and ↓0+21
Comments0

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

Level of difficultyEasy
Reading time4 min
Views7.7K

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

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

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

Читать далее
Total votes 18: ↑18 and ↓0+19
Comments7

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

Reading time3 min
Views5.2K

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

Читать далее
Total votes 17: ↑17 and ↓0+18
Comments0

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

Reading time2 min
Views7K

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

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

Читать далее
Total votes 12: ↑11 and ↓1+13
Comments12

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

Level of difficultyEasy
Reading time2 min
Views8.5K

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

Читать далее
Total votes 11: ↑10 and ↓1+12
Comments12

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

Level of difficultyEasy
Reading time10 min
Views6K

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

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

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

Читать далее
Total votes 14: ↑14 and ↓0+15
Comments6

Блеск и нищета нового Scrolling API в Spring Data

Level of difficultyEasy
Reading time9 min
Views7.4K

В Spring Data 3.1 появилось новое API для итерирования по большому объему данных: Scrolling API. Давайте изучим его, посмотрим на практические применения с примерами кода и преимущества по сравнению со всем известным Pageable. А также разберём, чего Scrolling API пока не хватает, и можно ли его вообще брать в свои проекты. Если хотите выяснить, как с новым API в теории ускорить пагинацию больших данных, — заходите под кат.

Читать далее
Total votes 22: ↑22 and ↓0+28
Comments5

Information

Rating
36-th
Works in
Registered
Activity