Почему
@Transactional
не работает при вызове метода внутри того же класса?Ответ:
Чтобы транзакция была активна, метод должен вызываться через прокси, например, путём внедрения собственного бина или получения его из ApplicationContext. Если требуется перехват внутренних вызовов, стоит использовать AspectJ — он работает на уровне байткода и не зависит от прокси-механизма.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3🔥1
В статье показано, как сократить число SQL-запросов при работе с Spring Data JPA и Hibernate: от устранения лишних
SELECT
до борьбы с N+1.Автор на примерах разбирает, когда использовать
getReferenceById
, @Version
, fetch
join
и @DynamicUpdate
, чтобы ускорить взаимодействие с базой и избежать скрытых тормозов.🔖 Предыдущая часть — КЛИК
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣31😁7❤2
Для чего используются статические блоки инициализации?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥6❤4
MapStruct — генератор кода для маппинга между Java-классами (например, DTO и Entity).
Вместо ручного написания конвертеров вы описываете интерфейс, а реализация создаётся автоматически на этапе компиляции.
Зависимость Maven:
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.5.Final</version>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.5.Final</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
Ускоряет разработку, избавляя от шаблонного и часто ошибочного кода при преобразовании объектов.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍6🔥5
Что выведет код сверху?
Anonymous Quiz
12%
false true
17%
true false
39%
false false
32%
Ошибка компиляции
🔥6❤4😁1
В статье рассматривается библиотека Try<T>, созданная автором для элегантной работы с исключениями без явного try/catch, в духе функционального программирования.
Автор показывает, как интегрировать Try с Optional, Stream, цепочками recover и управлением ресурсами, чтобы писать чище и лаконичнее.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4🔥1
Каково худшее время работы метода
contains()
для элемента, который есть в ArrayList
?Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤4
В видео разбирается базовая теория многопоточности и принципы работы потоков в Java, включая создание, запуск и особенности их поведения.
Автор показывает на примерах, как потоки выполняются параллельно, в каком порядке работают и что нужно учитывать при их использовании.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥4👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22❤6🔥2
Нужно ли переопределять другие методы при переопределении
equals()
?Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤7🔥1😁1
В статье объясняется, как не потерять достигнутую производительность при работе со Spring Data JPA и Hibernate в команде.
Автор показывает, когда ентити становятся обузой и как перейти на проекции, чтобы читать только нужные данные.
🔖 Предыдущая часть — КЛИК
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣39❤4🔥1
Как устроена архитектура брокеров в Kafka?
Ответ:
Данные всегда пишутся в лидера, который затем асинхронно реплицирует их фолловерам. Если лидер выходит из строя, Kafka автоматически выбирает нового из числа ISR. Это обеспечивает отказоустойчивость, хотя при смене лидера возможна кратковременная задержка в обслуживании.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍6🤯3
JUnit_Cheat_Sheet.pdf
71.4 KB
Эта короткая шпаргалка по JUnit поможет быстро вспомнить, как писать юнит-тесты на Java с использованием аннотаций и ассертов.
Внутри:
▶️ Создание тестов и настройка с @Test, @BeforeEach, @Timeout▶️ Основные ассерты: assertTrue, assertFalse, assertEquals, assertThrows▶️ Работа со списками, null-значениями и исключениями▶️ Пример тестирования ArrayList с реальными кейсами▶️ Синтаксис и структура JUnit 5 (Jupiter)
tags: #шпаргалка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3