TGViewer
YeaHub Tech YeaHub Tech @yeahub_tech · 412 subscribers
Post #501 16
🧑‍💻 Сложные вопросы с собесов на Java разработчика

1. Каким образом Spring реализует транзакции через прокси?
Spring реализует транзакции с помощью прокси-объектов. Вместо прямого вызова метода вызывается прокси, который оборачивает выполнение логикой транзакции. Прокси открывает транзакцию перед вызовом метода и коммитит или откатывает её после. Если метод вызывается в обход прокси, транзакция не создаётся. Поэтому важно понимать, как именно происходит вызов метода.

2. Сколько транзакций будет создано при вызове транзакционного метода внутри того же класса?
Транзакция не будет создана вообще. Вызов метода внутри того же класса происходит напрямую, минуя прокси. Spring не перехватывает такой вызов. В результате @Transactional просто игнорируется. Это частая ошибка у начинающих разработчиков.

3. Что такое Spring WebFlux?
Spring WebFlux — это реактивный web-фреймворк Spring. Он построен на неблокирующем I/O и реактивных потоках. WebFlux использует малое количество потоков для обслуживания большого числа запросов. Он хорошо подходит для высоконагруженных систем и асинхронных сценариев. При этом WebFlux не заменяет Spring MVC, а дополняет его.

4. Как действовать, если ORM генерирует неоптимальные JOIN-запросы?
Первым шагом нужно посмотреть фактический SQL и план выполнения. Часто проблема связана с lazy loading или N+1 запросами. Решение может включать переписывание запроса, использование fetch join или native SQL. Иногда лучше отказаться от ORM для конкретного запроса. Важно не лечить проблему вслепую.

5. В чём заключается суть реактивного подхода?
Реактивный подход основан на неблокирующей обработке данных и работе с потоками событий. Вместо ожидания результата код реагирует на его появление. Это позволяет эффективнее использовать ресурсы при большом количестве I/O-операций. Реактивные системы лучше масштабируются под высокую нагрузку. Однако они сложнее в понимании и отладке.

#aop #transactional #proxy #spring #webflux #reactive #orm #optimization #join #programming
  • 👍 1
More from @yeahub_tech
  1. Oct 9, 2026#Собес #pipeline #ci #stage 🤔 Что происходит при автоматической сборке feature-ветки на s…
  2. Oct 8, 2026#course #задачи #тесты 📚 JavaScript. A3 Задачи Задачи на программирования на языке JavaSc…
  3. Oct 7, 2026#course #начинающие 📚 Твой Golang Твой Golang — это идеальный старт для освоения языка. П…
  4. Oct 5, 2026🧑‍💻 Вопросы с собесов для Node.js Разработчика 1. Как использовать Service Workers для р…
  5. Oct 2, 2026#Собес #transaction #propagation #required 🤔 Что такое propagation у транзакций и какие т…
  6. Oct 1, 2026#book #book 📚 Библия C#. 6-е изд. Автор: Михаил Фленов Это настольная книга программиста,…
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 →