Кои методи за управление на транзакции в Spring знаете?
Java
В какъв обхват на видимост се създават по подразбиране bean-овете в Spring?
Имаш микросервизна архитектура: написахте анотацията в конкретен сервис или за целия проект? Как разпространявахте решението?
Разкажете за случай на оптимизация на SQL заявка: какъв беше проблемът и как беше решен?
Как да използваме анотацията на практика? Написахте ли своите персонализирани анотации?
Как да се справим с проблема N+1?
Преглед на кода: разгледайте метода getDivisions (екранни снимки на кода) — какво ви хареса, какво не? Обосновано ли е използването на Insensitive Order сортиране, обработката на грешки, стрийминг и т.н.?
Какво означава propagation, когато метод се извиква от контекста на вече отворена транзакция?
Какво е патърнът Singleton?
Ако същността е заредена с един заявка и ние извикваме метода за получаване на свързаната същност — колко общо заявки ще бъдат изпълнени?
Кои нива на изолация на транзакциите знаете?
Как бихте обяснили на друг разработчик какво е Spring Data и каква е нейната стойност?
Какво е анотация в Java? Как бихте обяснили това на друг разработчик?
Използвали ли сте TransactionTemplate в работата си? Дайте пример, когато решихте програмно дали да отмените транзакцията или не.
Методът save() в JPA репозиторията създава нова същност или актуализира съществуваща?
Обосновано ли е използването на анотацията @Transactional(readOnly=true) в този метод?
Какви методи за обработка на изключения сте използвали в приложенията Spring Boot?
Задача: има два микросервиса, трябва да прехвърлите голяма таблица (повече от 3 милиона записа) от един към друг (да направите локално копие). Как бихте го реализирали, като имате предвид, че данните могат често да се променят и е необходима транзакционност (всичко или нищо)?
Какви параметри има аннотацията @Transactional?
Разкажете за кеша, който споменахте: как беше реализиран, имаше ли проблеми при работа в няколко инстанции и как бяха решени (включително чрез Kafka)?