Транзакції Spring
Керування транзакціями за допомогою @Transactional, propagation, isolation, rollback, PlatformTransactionManager
1Яка основна роль анотації @Transactional у Spring?
Яка основна роль анотації @Transactional у Spring?
Відповідь
@Transactional вказує, що метод має виконуватися в транзакційному контексті, гарантуючи атомарність операцій з базою даних. Spring автоматично створює AOP proxy навколо класу для керування початком, commit та rollback транзакцій. Цей декларативний підхід значно спрощує керування транзакціями порівняно з ручним програмуванням за допомогою TransactionTemplate або PlatformTransactionManager.
2Який тип propagation за замовчуванням для @Transactional?
Який тип propagation за замовчуванням для @Transactional?
Відповідь
Propagation.REQUIRED — це тип propagation за замовчуванням. За цією стратегією Spring приєднається до наявної транзакції, якщо вона існує, або створить нову в іншому випадку. Це найпоширеніша та найінтуїтивніша поведінка для більшості випадків використання, що гарантує наявність транзакції для операцій з базою даних.
3Що відбувається, якщо в методі @Transactional виникає RuntimeException?
Що відбувається, якщо в методі @Transactional виникає RuntimeException?
Відповідь
За замовчуванням Spring автоматично виконує rollback транзакції, коли виникає RuntimeException (або Error). Це гарантує скасування змін у базі даних у разі непередбачених помилок. Натомість checked-винятки (що успадковуються від Exception, але не від RuntimeException) за замовчуванням не спричиняють rollback, якщо їх явно не вказано за допомогою rollbackFor.
Де можна застосовувати анотацію @Transactional?
Яку поведінку має Propagation.REQUIRES_NEW?
+27 питань зі співбесід
Інші теми співбесід Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Логування за допомогою SLF4J та Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Обробка винятків
Bean Validation
Основи Spring Data JPA
Сутності JPA та зв'язки
Запити JPA
Spring Data Repositories
Основи Spring Security
Spring Boot Actuator
Модульне тестування з JUnit та Mockito
Тестування Spring Boot
Profiles та Environment
RestTemplate і WebClient
Async і Scheduling
Кешування зі Spring
Spring WebFlux (Reactive)
Розширена автентифікація та авторизація
JWT та stateless-безпека
OAuth2 та Authorization Server
Spring Boot і Docker
Microservices зі Spring
Spring Cloud Config
Оптимізація продуктивності
GraalVM Native Images
Опануй Spring Boot для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно