2011-01-16 29 views
8

Sau khi xem xét mẫu AOP, tôi bị choáng ngợp với cách thức và cách sử dụng nó trong dự án mùa xuân của mình.Cách sử dụng phổ biến nhất cho AOP trong dự án mùa xuân

Tôi muốn sử dụng nó làm hệ thống nhật ký kiểm tra của tất cả logic nghiệp vụ tài chính. Nó chỉ có vẻ dễ dàng để tích hợp. Nhưng tôi muốn nghe bạn nói về điều này.

Câu hỏi đặt ra là - tôi nên xem xét những cách sử dụng nào khác phổ biến cho mẫu này? Tôi sẽ không nhớ tái cấu trúc logic hiện tại của tôi để được sử dụng với AOP miễn là có lợi ích cho nó.

+2

Có một câu hỏi tương tự một chút: "Aspect J tốt cho" là gì. http://stackoverflow.com/questions/4313789/what-is-aspectj-good-for – Ralph

Trả lời

9

Cách sử dụng phổ biến nhất có lẽ là xử lý giao dịch khai báo sử dụng @Transactional.

7

Bên cạnh việc ghi nhật ký/kiểm tra và xử lý giao dịch khai báo như đã đề cập bởi Axel, tôi sẽ nói cách sử dụng AOP khác làm trình chặn yêu cầu. Ví dụ, giả sử bạn cần tất cả các yêu cầu đến của một máy chủ bị chặn để bạn có thể làm điều gì đó với nó (có thể theo dõi ứng dụng nào đang gửi yêu cầu gì tới ứng dụng khác hoặc cơ sở dữ liệu nào, v.v.).

+0

Điều này cũng có thể sử dụng HandlerInterceptor và HandlerInterceptorAdoptor – Prateek

1

Sử dụng AOP để ghi nhật ký kiểm tra là việc sử dụng AOP hoàn toàn hợp lệ. Bạn có thể tắt nó để kiểm tra và thay đổi nó khi yêu cầu thay đổi trong sản xuất.

Nhược điểm duy nhất trong trường hợp này là nếu bạn định lập nhật ký kiểm tra thông qua SQL. Nó có thể được thực hiện nhiều hơn để thực hiện loại kiểm toán như là kích hoạt trực tiếp trong DB.

1

Câu trả lời hơi khác so với những gì @Axel cho biết, sử dụng nó để tự động chặn tất cả các cuộc gọi truy cập dữ liệu của bạn và áp dụng các giao dịch một cách thích hợp là phi thường. Tôi đã thiết lập để thực hiện tất cả các cuộc gọi đến gói dao của tôi mà không bắt đầu với "có được" trong một giao dịch và sau đó bất cứ điều gì được thực hiện trong một phương pháp bắt đầu với "get" được coi là chỉ đọc. Thật tuyệt vời bởi vì ngoài việc thiết lập ban đầu, tôi không phải lo lắng về nó, chỉ cần làm theo quy ước đặt tên.

2

Bạn có thể sử dụng AOP cho các mối quan tâm về bảo mật của mình, ví dụ: cho phép/không cho phép truy cập phương pháp. Một cách sử dụng khác của aop là kiểm tra hiệu suất ứng dụng của bạn.

+1

Để thực hiện truy cập phương pháp cho phép/giải thể, tôi nghĩ rằng Spring Security là lựa chọn tốt hơn so với AOP. –

7

Cách sử dụng phổ biến nhất là nơi ứng dụng của bạn đã cắt giảm mối quan tâm tức là một đoạn logic hoặc mã sẽ được viết trong nhiều lớp/lớp.

Và điều này có thể khác nhau tùy theo nhu cầu của bạn. Một số ví dụ rất phổ biến trong số này có thể là:

  1. Quản lý giao dịch
  2. Logging
  3. Exception Handling (đặc biệt là khi bạn có thể muốn có dấu vết chi tiết hoặc có một số kế hoạch phục hồi từ trường hợp ngoại lệ)
  4. khía cạnh an ninh
  5. Thiết bị đo đạc

Hy vọng điều đó sẽ hữu ích.

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