2008-11-28 2 views

Trả lời

6

JBossAOP và AspectJ là hai khung công cụ dành cho người lớn, thường được sử dụng cho AOP. Một lựa chọn phổ biến khác là Spring AOP, nhưng nó thiếu một số tính năng của hai loại còn lại.

Cả JBossAOP và AspectJ đều có các tính năng tương tự, một khác biệt lớn là AspectJ dựa trên các phần mở rộng cho ngôn ngữ Java, trong khi JBoss AOP thì không.

Nếu yêu cầu AOP của bạn khá đơn giản, bạn cũng nên xem xét thư viện thao tác mã byte, chẳng hạn như ASM. Tôi đã sử dụng ASM để thực hiện đơn giản 'xung quanh-lời khuyên' (tức là, mã được tiêm trước và sau khi invocations phương pháp), và nó được chứng minh là một thay thế nhẹ hơn để JBossAOP. ASM được thiết kế rõ ràng và được ghi chép cẩn thận.

+0

Ok! Cảm ơn, tôi phải nhìn vào JBoss AOP. – Bleadof

3

Tôi sẽ nói AspectJ. Phần IDE, theo như tôi biết, còn thiếu, nhưng tài liệu và tính biểu cảm là một trong những khung công tác tốt nhất của AOP mà tôi đã thấy.

+1

Brilliant! Tôi đã nhìn thấy AspectJ như là một phần của IDE Eclipse vì vậy tôi nghĩ rằng ít nhất một số hỗ trợ cho công cụ có sẵn ... – Bleadof

2

Nếu bạn đã sử dụng Spring, các obeject được quản lý đã có AOP support. Trong khi không hoàn toàn linh hoạt như AspectJ, nó không yêu cầu bước biên dịch trước mà AspectJ thực hiện.

0

Về hỗ trợ Spring AOP. Theo mặc định, nó chỉ liên quan đến các đối tượng có thể quản lý Spring và AFAIK dựa trên AspectJ.

Tôi chưa tự kiểm tra, nhưng có vẻ như nó cho phép sử dụng AOP và cho các đối tượng khác (ví dụ: thời gian tải dệt dưới Tomcat). Chi tiết là here.