Tôi phải sử dụng 3 người quản lý giao dịch khác nhau trong ứng dụng web của mình. Vì vậy, tôi đã viết chú thích của riêng tôi theo Spring reference (Mục 10.5.6.3 Chú thích phím tắt tùy chỉnh).Cách mở rộng chú thích mùa xuân @Transactional
Một chú thích (cho việc sử dụng một transactionmanager cụ thể) trông như thế này:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.transaction.annotation.Transactional;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional("customer")
public @interface CustomerTX{
}
Tất cả mọi thứ đang làm việc tốt khi chú thích lớp dịch vụ của tôi với @CustomerTX chú thích tùy chỉnh. Nhưng tôi phải cung cấp nhiều tùy chọn hơn cho chú thích của tôi, như readonly = true, rollbackFor = v.v. Vì bạn không thể "mở rộng" một chú thích (tôi thực sự chỉ cần mở rộng chú thích @Transactional từ Spring), việc triển khai chính xác cho điều này là gì?
Bạn có thực sự có nghĩa là tôi phải viết một cái gì đó như thế này (giả sử tôi chỉ muốn đã thiết lập các giao dịch để chỉ đọc): @Target ({ElementType.METHOD, ElementType.TYPE}) @Retention (RetentionPolicy.RUNTIME) @Transactional (value = "khách hàng", readOnly = true) @ interface nào CustomerTXReadonly { } Điều này có thể không phải là giải pháp làm việc chỉ ... –
tôi sợ như vậy, bởi vì các giới hạn của chú thích. Như tôi đã nói: hoặc là điều đó hoặc viết các khía cạnh của riêng bạn (mà tôi thích) –
Cảm ơn sự giúp đỡ của bạn. Tôi sẽ cố gắng viết các khía cạnh của riêng mình. Thật đáng tiếc là các chú thích không thể mở rộng được: ( –