Giao dịch Spring
Quản lý giao dịch với @Transactional, propagation, isolation, rollback, PlatformTransactionManager
1Vai trò chính của annotation @Transactional trong Spring là gì?
Vai trò chính của annotation @Transactional trong Spring là gì?
Câu trả lời
@Transactional cho biết một phương thức nên được thực thi trong ngữ cảnh giao dịch, đảm bảo tính nguyên tử của các thao tác cơ sở dữ liệu. Spring tự động tạo một AOP proxy bao quanh lớp để xử lý việc bắt đầu, commit và rollback giao dịch. Cách tiếp cận khai báo này đơn giản hóa đáng kể việc quản lý giao dịch so với lập trình thủ công bằng TransactionTemplate hoặc PlatformTransactionManager.
2Loại propagation mặc định cho @Transactional là gì?
Loại propagation mặc định cho @Transactional là gì?
Câu trả lời
Propagation.REQUIRED là loại propagation mặc định. Với chiến lược này, Spring sẽ tham gia vào một giao dịch hiện có nếu có, hoặc tạo một giao dịch mới nếu không. Đây là hành vi phổ biến và trực quan nhất cho hầu hết các trường hợp sử dụng, đảm bảo luôn có một giao dịch hiện diện cho các thao tác cơ sở dữ liệu.
3Điều gì xảy ra nếu một RuntimeException được ném ra trong một phương thức @Transactional?
Điều gì xảy ra nếu một RuntimeException được ném ra trong một phương thức @Transactional?
Câu trả lời
Theo mặc định, Spring tự động rollback giao dịch khi một RuntimeException (hoặc Error) được ném ra. Điều này đảm bảo các thay đổi trên cơ sở dữ liệu được hoàn tác trong trường hợp xảy ra lỗi không mong muốn. Ngược lại, các checked exception (kế thừa từ Exception nhưng không phải RuntimeException) không kích hoạt rollback theo mặc định, trừ khi được chỉ định rõ ràng bằng rollbackFor.
Annotation @Transactional có thể được áp dụng ở đâu?
Propagation.REQUIRES_NEW có hành vi như thế nào?
+27 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Spring Boot khác
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging với SLF4J và Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Xử lý ngoại lệ
Bean Validation
Kiến thức cơ bản về Spring Data JPA
Thực thể JPA & Quan hệ
Truy vấn JPA
Spring Data Repositories
Cơ bản về Spring Security
Spring Boot Actuator
Kiểm thử đơn vị với JUnit & Mockito
Kiểm thử Spring Boot
Profiles và Environment
RestTemplate và WebClient
Async và Scheduling
Caching với Spring
Spring WebFlux (Reactive)
Xác thực và phân quyền nâng cao
JWT & Bảo mật Stateless
OAuth2 & Authorization Server
Spring Boot và Docker
Microservices với Spring
Spring Cloud Config
Tối ưu hóa hiệu năng
GraalVM Native Images
Nắm vững Spring Boot cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí