Khi chú thích này được khai báo ở cấp độ lớp, nó sẽ áp dụng như một mặc định cho tất cả các phương thức của lớp khai báo và các lớp con của nó. Lưu ý rằng nó không áp dụng cho các lớp tổ tiên trong hệ thống phân cấp lớp; . Để biết chi tiết về các ràng buộc về khả năng hiển thị của phương pháp, hãy tham khảo phần của tài liệu tham khảo
Chú thích này thường có thể so sánh trực tiếp với lớp RuleBasedTransactionAttribute
của Spring và trên thực tế, AnnotationTransactionAttributeSource
sẽ trực tiếp chuyển đổi thuộc tính của chú thích này thành thuộc tính trong RuleBasedTransactionAttribute
, do đó mã hỗ trợ giao dịch của Spring không cần phải biết về chú thích
ngữ nghĩa thuộc tính
Nếu không có quy tắc khôi phục tùy chỉnh nào được định cấu hình trong chú thích này, giao dịch sẽ khôi phục vào RuntimeException
và Error
chứ không phải trên các trường hợp ngoại lệ được kiểm tra
Các quy tắc khôi phục xác định xem một giao dịch có nên được khôi phục hay không khi một ngoại lệ nhất định được đưa ra và các quy tắc này dựa trên các loại hoặc mẫu. Quy tắc tùy chỉnh có thể được định cấu hình thông qua / và /, cho phép quy tắc được chỉ định tương ứng là loại hoặc mẫu
Khi quy tắc khôi phục được xác định với một loại ngoại lệ, loại đó sẽ được sử dụng để khớp với loại ngoại lệ được ném và các siêu loại của nó, mang lại sự an toàn cho loại và tránh bất kỳ sự trùng khớp không chủ ý nào có thể xảy ra khi sử dụng mẫu. Ví dụ: giá trị của jakarta.servlet.ServletException.class
sẽ chỉ khớp với các ngoại lệ được ném ra của loại AnnotationTransactionAttributeSource
0 và các lớp con của nó
Khi quy tắc khôi phục được xác định bằng mẫu ngoại lệ, mẫu có thể là tên lớp đủ điều kiện hoặc chuỗi con của tên lớp đủ điều kiện cho một loại ngoại lệ [phải là lớp con của AnnotationTransactionAttributeSource
1], hiện tại không hỗ trợ ký tự đại diện. Ví dụ: giá trị của AnnotationTransactionAttributeSource
2 hoặc AnnotationTransactionAttributeSource
3 sẽ khớp với AnnotationTransactionAttributeSource
0 và các lớp con của nó
CẢNH BÁO. Bạn phải xem xét cẩn thận mức độ cụ thể của một mẫu và liệu có bao gồm thông tin gói hay không [không bắt buộc]. Ví dụ: AnnotationTransactionAttributeSource
5 sẽ khớp với hầu hết mọi thứ và có thể sẽ ẩn các quy tắc khác. AnnotationTransactionAttributeSource
6 sẽ đúng nếu AnnotationTransactionAttributeSource
5 được dùng để xác định quy tắc cho tất cả các ngoại lệ được kiểm tra. Với các tên ngoại lệ độc đáo hơn, chẳng hạn như AnnotationTransactionAttributeSource
8, có thể không cần sử dụng tên lớp đủ điều kiện cho mẫu ngoại lệ. Hơn nữa, các quy tắc khôi phục được xác định thông qua các mẫu có thể dẫn đến kết quả trùng khớp ngoài ý muốn đối với các ngoại lệ và lớp lồng nhau có tên tương tự. Điều này là do thực tế là một ngoại lệ đã ném được coi là phù hợp với quy tắc khôi phục dựa trên mẫu nhất định nếu tên của ngoại lệ đã ném chứa mẫu ngoại lệ được định cấu hình cho quy tắc khôi phục. Ví dụ: đưa ra một quy tắc được định cấu hình để khớp với AnnotationTransactionAttributeSource
9, quy tắc đó sẽ khớp với một ngoại lệ có tên là RuleBasedTransactionAttribute
0 [một ngoại lệ trong cùng gói với RuleBasedTransactionAttribute
1 nhưng có thêm một hậu tố] hoặc một ngoại lệ có tên là RuleBasedTransactionAttribute
2 [một ngoại lệ được khai báo là một lớp lồng nhau trong
Để biết thông tin cụ thể về ngữ nghĩa của các thuộc tính khác trong chú thích này, hãy tham khảo javadocs RuleBasedTransactionAttribute
4 và RuleBasedTransactionAttribute
5
Quản lý giao dịch
Chú thích này thường hoạt động với các giao dịch liên kết luồng được quản lý bởi RuleBasedTransactionAttribute
6, hiển thị giao dịch cho tất cả các hoạt động truy cập dữ liệu trong luồng thực thi hiện tại. Ghi chú. Điều này KHÔNG lan truyền đến các chủ đề mới bắt đầu trong phương thức
Ngoài ra, chú thích này có thể phân định ranh giới một giao dịch phản ứng được quản lý bởi một RuleBasedTransactionAttribute
7 sử dụng bối cảnh Lò phản ứng thay vì các biến cục bộ của luồng. Do đó, tất cả các hoạt động truy cập dữ liệu tham gia cần phải thực thi trong cùng bối cảnh Lò phản ứng trong cùng một quy trình phản ứng
Nội dung trong bài viết này chưa được đánh giá cho tất cả các triển khai Anaplan và có thể không được đề xuất cho tình huống cụ thể của bạn.
Vui lòng tham khảo ý kiến của quản trị viên nội bộ trước khi áp dụng bất kỳ ý tưởng hoặc bước nào trong bài viết này.
Để kiểm tra xem bạn đã thiết lập mọi thứ chính xác chưa, chúng tôi sẽ thực hiện một yêu cầu đơn giản tới điểm cuối AnnotationTransactionAttributeSource
5. Việc nhấn điểm cuối này đóng vai trò kiểm tra tình trạng trên dịch vụ API giao dịch Mailchimp và sẽ không ảnh hưởng đến tài khoản của bạn theo bất kỳ cách nào
curl -sS -X POST "//mandrillapp.com/api/1.0/users/ping" \
--header 'Content-Type: application/json' \
--data-raw '{ "key": "YOUR_API_KEY" }'
Nếu cuộc gọi thành công, phản hồi bạn nhận được sẽ là một chuỗi đọc AnnotationTransactionAttributeSource
6.