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.