TGViewer
Spring АйО Spring АйО @spring_aio · 10.9K subscribers
Post #1088 7.38K
👩‍💻 Spring Boot 4.1 дает новую опцию управления JDBC Соединениями!

По умолчанию Spring забирает connection в момент открытия транзакции, а не в момент первого SQL-запроса.

Проблема в том, что иногда запросов может не быть вообще.

Типичный сценарий в Enterprise:
— cache hit;
— ранний return;
— не прошла валидация;
— проверка прав завернула вызов;
— сначала сходили в медленный внешний API, а до БД еще даже не дошли.

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

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

Тем не менее, стоит признать, что такое часто встречается. В Spring Boot 4.1 эта проблема чинится одной property:

spring.datasource.connection-fetch=lazy


Смысл такой, что нет SQL — нет connection. То есть раньше приложение брало connection на всякий случай. А теперь только когда он реально нужен.

⚠️ Обратите внимание, что данная настройка работает не только с Hibernate. Более того, вообще любая блокирующая технология доступа к БД в экосистеме Spring (JdbcClient, Spring Data JDBC и т.д.) может работать с этой фичей.

Происходит это потому, что под капотом используется LazyConnectionDataSourceProxy, который, на самом деле, существует давно. Просто раньше надо было знать о нем, лезть в конфиг и руками оборачивать DataSource.

В итоге, где это реально имеет смысл:

— широкие @Transactional границы;
— early-return без похода в БД;
— нагрузка, где каждый idle connection уже начинает стоить дорого.

Флаг довольно удобный. Имейте в виду!
  • 🔥 98
  • 👍 40
  • ❤ 18
More from @spring_aio
  1. Oct 2, 2026🙅‍♂️ Не каждый AI-вызов должен генерировать текст Иногда от модели нужен не красивый отве…
  2. Oct 1, 2026JEP 544: JVM будет сохранять машинный код между запусками JEP 544 (Ahead-of-Time Code Comp…
  3. Sep 30, 2026🍃 Переписываем всё на Rust, JavaScript — кошмар, AI против Vaadin | Spring АйО Подкаст №7…
  4. Sep 29, 2026⚡️ AI-плагин уже в OpenIDE Pro Вышли новые версии OpenIDE и OpenIDE Pro: AI-плагин теперь…
  5. Sep 28, 2026🧑‍💻 Скрытая возможность конфигурации Spring Boot, о которой мало говорят Представим, что…
  6. Sep 25, 2026✏️ В JavaDoc предлагают добавить заметки, которые сложно пропустить В JavaDoc предлагают д…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →