Spring АйО
10.6K subscribers
452 photos
302 videos
582 links
Русскоязычное сообщество Spring-разработчиков.

Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy

Чат для общения: @spring_aio_chat
По вопросам сотрудничества: @befayer
Download Telegram
Почему merge в Hibernate почти всегда лишний (и чем его заменить)

Чаще всего merge в Hibernate – это лишний SELECT. И это не про сохранение, а про перенос состояния detached-объекта в текущий Persistence Context.

Эту проблему и пути её решения отдельно обсуждали на докладе в рамках Joker Фёдор и Илья.

Встречается это в типичном флоу: findById -> setX -> save.

Внутри @Transactional загруженная сущность уже managed, а UPDATE и так уйдет в момент flush. А вот save в Spring Data JPA нередко уходит в merge и может добавить лишние чтение или копирование.

Отдельная боль - CascadeType.MERGE (или ALL): merge проходит по графу связей, растут накладные расходы и потенциальные SQL.
Не отходя от кассы 🤓

Конечно же, про подобные и более сдожные темы (@BatchSize, пагинация без OFFSET, StatelessSession/Bulk API, Soft Delete, multi-tenancy, outbox и т.д.) у нас есть собственный лекториум, где Михаил все расскажет и покажет.

📎 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/1020426/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2085🤯1
Media is too big
VIEW IN TELEGRAM
🍃 Claude слили, Spring Data JDBC еще может, GitHub не работает | Spring АйО Подкаст №57

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1765👍2
🤩 Москва, джависты, газ знакомиться!

22 апреля мы проводим совместный митап с VK. Java и Spring без разогревающих докладов и воды.

Встречаемся офлайн в Москве и онлайн.

Что в программе:

🔘Observability-as-Code в Spring Boot: контракты и тесты для метрик, логов и рейсов. Наш эксперт Евгений Сулейманов

🔘Классы типов — возможное будущее Java: как Брайан Гётц предлагает развивать язык. Андрей Васильев, ведущий разработчик RuStore, VK

🔘Основная проблема взаимодействия с базами данных. Наши Илья и Фёдор Сазонов

После докладов тоже будет интересно — мастер-класс, общение, фуршет и нормальный нетворкинг.


Когда: 22 апреля
🎯 Где: Москва, Скайлайт + онлайн
🎯 Сбор гостей: 18:30

📎 Участие бесплатное, главное – зарегистрироваться: https://vk.cc/cWheDY
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍23🔥1611🤔3🤯21
😭 Самый простой способ устроить утечку памяти в Java

Не секрет, что GC освобождает только недостижимые объекты. Утечка в Java начинается там, где объект уже не нужен, но на него все еще есть цепочка ссылок от живого потока.

Симптомы обычно одинаковые: куча растет, GC срабатывает чаще, паузы увеличиваются, финал - java.lang.OutOfMemoryError: Java heap space.

Самые частые ловушки и фиксы:
🔳static List/Map: добавили и не удалили - объекты остаются в памяти до выгрузки класса. Нужны remove/очистка, лимиты, иногда WeakHashMap.
🔳non-static inner/anonymous class: неявно держит ссылку на внешний объект, особенно если внутри бесконечный Thread.
🔳listener/callback: подписались и не отписались - источник событий удерживает объект (UI, event bus).
🔳ThreadLocal в пуле потоков: set() без remove().
🔳кэш на HashMap без maxSize/TTL: используйте политики вытеснения (Guava Cache, Caffeine)

В целом вывод такой, что нужно смотреть график heap в Grafana, снимать heap dump (jmap), в Eclipse MAT запускать Leak Suspects и проверять цепочки удерживающих ссылок.

📎 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/1022018/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍338🔥61
⚡️ Большая распаковка Java 26. Что этот релиз значит для нас всех?

В новом видео разбираемся:
🟡какие изменения стали финальными и доступны прямо сейчас
🟡какие требуют явного включения флагов
🟡и за какими пока стоит просто следить

Плюс рассмотрим один секретный JEP :D

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥17👍73😁1
💡 JPA 4. Переосмысление Hibernate

Вышел первый milestone Jakarta Persistence 4.0 (JPA 4). Это крупнейшая переработка со времен JPA 2.0 (декабрь 2009).

Михаил Поливаха:

Статья является переводом анонса Гевина Кингa о релизе первого milestone JPA 4 спецификации и общего вектора развития JPA.

Полноценная 4-ая версия JPA спецификации должна выйти в этом году. Тем не менее, то, что сейчас в Milestone – это основа, которая, возможно, с небольшими доработками, но уже пойдёт в релиз в этом году.

От себя скажу, что данное обновление будет довольно крупное. Я оставил свои комментарии там, где посчитал уместным.

P.S: У нас в рамках Spring АйО Академии как раз есть программа, посвящённая Hibernate. Набор мы на неё ведём до конца апреля.

В ней мы тоже затронем новую версию спецификации, в частности и работу со StatelessSession и EntityAgent на практике. Я думаю, что из всего апдейта, именно стандартизация работы без Persistence Context будет самым важным для прикладных разработчиков.

Приятного чтения!


📎 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/1022564/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥652
🍃 Spring Data JDBC: Где мы находимся сейчас 😀

Друзья, встречаем первый из 5 докладов трека Spring АйО на самой важной конференции весны – JPoint 2026!

Молодое поколение врывается на сцену – Артемий Дегтярев расскажет, как поживает Spring Data JDBC в наше время.

Рассмотрим все последние фичи, от AOT-репозиториев и композитных ключей, до Single Query Loading, поговорим о мечтах про Scrolling API и о проблемах в реализации всех этих фич.


⛔️Все доклады трека Spring АйО будут транслироваться в онлайне и будут доступны абсолютно бесплатно! Главное – зарегистрироваться.

Для тех, кто придет лично – наш зал будет под номером 2️⃣!

🗓 29 апреля
📍 Онлайн. Бесплатно
🏠 Оффлайн. Гостиница «Рэдиссон Славянская»: пл. Европы, 2

🔗 ЗАРЕГИСТРИРОВАТЬСЯ

@spring_aio 🩷 @jpoint_joker_channel
Please open Telegram to view this post
VIEW IN TELEGRAM
👍178🔥5
🇪🇸 Мы в Барселоне!

Прямо сейчас в Барселоне проходит Spring I/O — одна из главных конференций для Spring-разработчиков.

И для нас особенно приятно, что там выступает наш экспертМихаил Поливаха.

Миша выступит с докладом Spring Data JDBC - Taming the Beast — про то, как проектировать агрегаты в Spring Data JDBC без лишней боли, скрытой сложности и неприятных сюрпризов по производительности. Но об этом чуть позже.

Поэтому...

⛔️Если у вас есть вопросы к команде Spring — про Spring Boot, Spring Data, Spring AI, Security, roadmap, миграции, production-боль или что-то еще — пишите их в комментарии под этим постом.

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

🎂 Хороший вопрос к Spring-команде — штука слишком ценная, чтобы держать его при себе, согласитесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6316👍13🤯2