2010-11-09 31 views
14

Tôi đã đấu tranh với điều này trong một vài giờ ngay bây giờ.Cấu hình giao dịch cho ngữ cảnh cấu hình Spring Java

Tôi đang cố gắng di chuyển cấu hình Spring XML của mình sang cấu hình dựa trên Java hoàn chỉnh.

Tôi đang sử dụng AnnotationConfigApplicationContext làm triển khai ngữ cảnh.

Tôi đang gặp khó khăn khi tìm một tương đương Java cho dòng này, từ cấu hình XML cũ của tôi:

<tx:annotation-driven transaction-manager="transactionManager" /> 

Kết quả là, mùa xuân không quản lý các giao dịch.

Trong cấu hình Java của tôi, tôi đã khởi tạo các bean liên quan cho giao dịch: nhà máy phiên, người quản lý giao dịch, v.v., nhưng không có dòng đó, không sử dụng proxy giao dịch, vì vậy không có giao dịch nào thực sự được thực hiện.

Vì vậy, câu hỏi của tôi là làm cách nào để dịch dòng đó sang cấu hình ngữ cảnh Java của tôi hoặc cách tôi giải quyết vấn đề theo cách khác.

Mọi trợ giúp đều được đánh giá cao. Cảm ơn.

Trả lời

2

Theo kinh nghiệm của tôi, việc thay thế hoàn toàn cấu hình XML bằng cấu hình kiểu @Bean hoàn toàn không thực tế. Một số điều làm cho ý nghĩa hơn cấu hình trong java, đặc biệt là định nghĩa bean của riêng bạn. Nhưng khi nói đến các khai báo kiểu cơ sở hạ tầng như <tx:annotation-driven>, cú pháp XML ngắn gọn hơn rất nhiều.

Bạn thể tái tạo các tác dụng tương tự trong java tinh khiết, nhưng nó kết thúc lên được cồng kềnh và unintuitive, vì những thứ như <tx:annotation-driven> thường tương tác của các lớp cơ sở hạ tầng xuân ở mức độ thấp phức tạp mà bạn thực sự không muốn chạm vào.

Lời khuyên của tôi - trộn và kết hợp, sử dụng từng Java và XML cho các điểm mạnh của riêng chúng. Điều này khá dễ làm. Tôi thích giữ các lớp ApplicationContext XML bình thường, và sau đó khai báo các lớp @Configuration của mình làm các bean trong ngữ cảnh XML đó, cùng với những thứ như <tx:annotation-driven>.

+0

Bạn vẫn cảm thấy như vậy, 4 năm sau, @skaffman? – GaZ

+1

Không, tôi không nghĩ vậy. Phong cách chú thích là phong phú hơn đáng kể trong các phiên bản Spring hiện đại hơn là vào mùa xuân 3. – skaffman

+0

Cảm ơn bạn đã cập nhật. Đó là những gì tôi nghi ngờ. Chúng tôi đang cố gắng cập nhật mã cũ của mình lên Spring 4 và là một phần của quá trình đó tôi muốn loại bỏ càng nhiều cấu hình XML càng tốt (miễn là nó có ý nghĩa, tất nhiên, nhưng tôi cảm thấy rằng ở hầu hết các địa điểm phương pháp dựa trên chú thích là một lựa chọn tốt hơn). – GaZ

Các vấn đề liên quan