AOP với Spring Framework
Một trong những thành phần chính của Spring Framework là Aspect oriented programming (AOP)khuôn khổ. Lập trình hướng theo khía cạnh đòi hỏi phải chia logic chương trình thành các phần riêng biệt được gọi là cái gọi là mối quan tâm. Các hàm mở rộng nhiều điểm của một ứng dụng được gọi làcross-cutting concernsvà những mối quan tâm xuyên suốt này tách biệt về mặt khái niệm với logic nghiệp vụ của ứng dụng. Có nhiều ví dụ điển hình phổ biến về các khía cạnh như ghi nhật ký, kiểm toán, giao dịch khai báo, bảo mật, bộ nhớ đệm, v.v.
Đơn vị quan trọng của mô đun trong OOP là lớp, trong khi trong AOP, đơn vị mô đun là khía cạnh. Dependency Injection giúp bạn tách các đối tượng ứng dụng của mình khỏi nhau và AOP giúp bạn tách các mối quan tâm xuyên suốt khỏi các đối tượng mà chúng ảnh hưởng. AOP giống như các trình kích hoạt trong các ngôn ngữ lập trình như Perl, .NET, Java và các ngôn ngữ khác.
Mô-đun AOP mùa xuân cung cấp các bộ chặn để chặn một ứng dụng. Ví dụ: khi một phương thức được thực thi, bạn có thể thêm chức năng bổ sung trước hoặc sau khi thực thi phương thức.
Thuật ngữ AOP
Trước khi bắt đầu làm việc với AOP, chúng ta hãy làm quen với các khái niệm và thuật ngữ AOP. Những điều khoản này không dành riêng cho Spring, thay vào đó chúng có liên quan đến AOP.
Sr.No | Điều khoản & Mô tả |
---|---|
1 | Aspect Đây là một mô-đun có một tập hợp các API cung cấp các yêu cầu xuyên suốt. Ví dụ, một mô-đun ghi nhật ký sẽ được gọi là khía cạnh AOP để ghi nhật ký. Một ứng dụng có thể có bất kỳ khía cạnh nào tùy thuộc vào yêu cầu. |
2 | Join point Điều này thể hiện một điểm trong ứng dụng của bạn nơi bạn có thể bổ sung khía cạnh AOP. Bạn cũng có thể nói, đó là nơi thực tế trong ứng dụng, nơi một hành động sẽ được thực hiện bằng cách sử dụng Spring AOP framework. |
3 | Advice Đây là hành động thực sự được thực hiện trước hoặc sau khi thực thi phương thức. Đây là một đoạn mã thực tế được gọi trong quá trình thực thi chương trình bởi Spring AOP framework. |
4 | Pointcut Đây là một tập hợp của một hoặc nhiều điểm nối mà một lời khuyên nên được thực hiện. Bạn có thể chỉ định các phím tắt bằng cách sử dụng các biểu thức hoặc mẫu như chúng ta sẽ thấy trong các ví dụ AOP của chúng tôi. |
5 | Introduction Phần giới thiệu cho phép bạn thêm các phương thức hoặc thuộc tính mới vào các lớp hiện có. |
6 | Target object Đối tượng được tư vấn bởi một hoặc nhiều khía cạnh. Đối tượng này sẽ luôn là một đối tượng được hỗ trợ, còn được gọi là đối tượng được tư vấn. |
7 | Weaving Dệt là quá trình liên kết các khía cạnh với các loại ứng dụng hoặc đối tượng khác để tạo ra một đối tượng được tư vấn. Điều này có thể được thực hiện tại thời điểm biên dịch, thời gian tải hoặc trong thời gian chạy. |
Các loại lời khuyên
Các khía cạnh mùa xuân có thể hoạt động với năm loại lời khuyên được đề cập như sau:
Sr.No | Lời khuyên & Mô tả |
---|---|
1 | before Chạy lời khuyên trước khi thực thi một phương thức. |
2 | after Chạy lời khuyên sau khi thực hiện phương pháp, bất kể kết quả của nó. |
3 | after-returning Chỉ chạy lời khuyên sau khi thực thi phương thức nếu phương thức hoàn tất thành công. |
4 | after-throwing Chỉ chạy lời khuyên sau khi thực thi một phương thức nếu phương thức thoát bằng cách ném một ngoại lệ. |
5 | around Chạy lời khuyên trước và sau khi phương pháp đã khuyên được gọi. |
Triển khai các khía cạnh tùy chỉnh
Mùa xuân hỗ trợ @AspectJ annotation style cách tiếp cận và schema-basedcách tiếp cận để thực hiện các khía cạnh tùy chỉnh. Hai cách tiếp cận này đã được giải thích chi tiết trong các phần sau.
Sr.No | Cách tiếp cận & Mô tả |
---|---|
1 | Dựa trên lược đồ XML Các khía cạnh được triển khai bằng cách sử dụng các lớp thông thường cùng với cấu hình dựa trên XML. |
2 | Dựa trên @AspectJ @AspectJ đề cập đến một kiểu khai báo các khía cạnh như các lớp Java thông thường được chú thích bằng các chú thích Java 5. |