Bài viết Spring Aop Là Gì – Lập Trình Oop Và Aop thuộc chủ đề về Giải Đáp đang được rất nhiều bạn quan tâm đúng không nào !! Hôm nay, Hãy cùng https://truonggiathien.com.vn/ tìm hiểu Spring Aop Là Gì – Lập Trình Oop Và Aop trong bài viết hôm nay nha !
Các bạn đang xem chủ đề về : “Spring Aop Là Gì – Lập Trình Oop Và Aop”

Nguồn: https://stackjava.com/faq/aop-la-gi-aspect-oriented-programming-trong-java.html

1. AOP là gì?

Aspect Oriented Programming (AOP) – lập trình hướng khía cạnh: là một kỹ thuật lập trình (kiểu như lập trình hướng đối tượng) nhằm phân tách chương trình thành cách moudule riêng rẽ, phân biệt, không phụ thuộc nhau.

Bạn đang xem: Spring aop là gì

Khi vận hành, chương trình sẽ kết hợp các module lại để thực hiện các chức năng nhưng khi sửa đổi 1 chức năng thì chỉ cần sửa 1 module.

AOP không phải dùng để thay thế OOP mà để bổ sung cho OOP.

*

Ví du 1:

1 công ty được chia thành nhiều phòng ban, phòng kỹ thuật, phòng kế toán, phòng buôn bán (mỗi phòng giống như một module trong chương trình)…

Mỗi phòng thực hiện một nhiệm vụ riêng, nhưng cần kết hợp lại để vận hành một công ty.

– Trong AOP có khái niệm “lát cắt”, “điểm cắt”, tạm hiểu là module A sẽ xen vào module B để thực hiện 1 chức năng nào đó mà không làm tác động module B, “điểm cắt” là vị trí mà module A xen vào module B

Ví dụ, trong công ty, tất cả các nhân viên đều cần phải quyết toán thuế, nếu từng người 1 thực hiện sẽ tốn rất nhiều thời gian và tác động tới công ty. Phòng kế toán sẽ gộp lại và thực hiện quyết toán cho tất cả nhân viên. Bây giờ luật thuế thay đổi ngay, thì cũng chỉ cần mỗi phòng kế toán chỉnh sửa lại cho phù hợp, không tác động gì tới các phòng ban khác. (Module phòng kế toán thực hiện lát cắt với các phòng còn lại ở nhiệm vụ quyết toán thuế)

Bài Nổi Bật  Thông Số Kỹ Thuật Là Gì

Điểm cắt ở đây tùy vào xếp muốn, luật bắt buộc, ví dụ luật bắt buộc là phải quyết toán thuế cuối năm thì phòng kế toán sẽ thực hiện lát cắt quyết toán thuế cho các phòng ban còn lại vào cuối năm.

Ví dụ 2:

Trong code bạn thường thực hiện viết log cho các method (method nào chạy, lỗi gì xảy ra…). Rõ ràng việc viết log chẳng liên quan gì đến chức năng của method.

Bây giờ bắt buộc chuyển sang chỉ viết log khi bắt đầu các method chẳng hạn, ta lại phải sửa tất cả các method đó.

Xem thêm: Distribution Là Gì – Nghĩa Của Từ Distribution

Bây giờ áp dụng AOP, ta sẽ phân tách chức năng log ra một module riêng và dùng nó thực hiện các lát cắt với các method cần thực hiện log.

Muốn log ở đầu method, điểm cắt sẽ là ở đầu các method, muốn cắt ở cuối method thì điểm cắt sẽ là cuối method.

Ví dụ 3:

Trong lập trình web, có 1 khái nhiệm filter, tức là tất cả các request được chọn sẽ đều chạy qua filter đó.

filter ở đây cũng được coi như 1 module độc lập riêng rẽ. Chẳng hạn mỗi request gửi đến cần xác thực (kiểm tra login) ta chỉ cần cho nó đi qua 1 filter thực hiện xác thực là được, muốn sửa đổi cách xác thực thì ta chỉ cần sửa filter là xong.

Xem thêm: Demand Là Gì? Nghĩa Của Từ Demand Tr On Demand Là Gì

Bài Nổi Bật  Sso Là Gì - Xác Thực Một Lần Single Sign On

2. Ưu nhược điểm của AOP

Ưu điểm:

Thiết kế đơn giản: “You aren’t gonna need it (YAGNI)” – chúng ta chỉ cài đặt những thứ chúng ta thực sự cần mà không bao giờ cài đặt trước. Cài đặt chương trình một cách trong sáng: mỗi một module chỉ làm cái mà nó cần phải làm, giải quyết được hai vấn đề code tangling và code scattering. Tái dùng đơn giản.

Nhược điểm:

Khái nhiệm khá trừu tượng, độ trừu tượng của chương trình cao Luồng chương trình phức tạp. 3. Các ngôn từ trong AOP

Mình sẽ lấy ví dụ cho việc tách chức năng log để minh họa.

Core concerns: hàm chính của chương trình (các method cần thực hiện log) Crosscutting concerns: những chức năng khác của chương trình: (chức năng log) Join points: một điểm của chương trình, là nơi khả năng chèn những “custom action” của bạn Pointcut: có nhiều cách để xác định joinpoint, những cách như thế được gọi là pointcut. Advice: là những xử lý phụ được thêm vào xử lý chính, code để thực hiện các xử lý đó được gọi Adivce. 4. Code ví dụ bằng Java.

Để thực hiện AOP trong Java ta khả năng dùng các cài đặt cung cấp bởi

AspectJ Spring AOP JBoss AOP Ví dụ AOP với Spring AOP: https://stackjava.com/spring/spring-aop-1.html Ví dụ AOP với Spring + AspectJ: https://stackjava.com/spring/spring-core-aop-aspectj.html

Nguồn: https://stackjava.com/faq/aop-la-gi-aspect-oriented-programming-trong-java.html

Chuyên mục: Hỏi Đáp

Các câu hỏi về Spring Aop Là Gì – Lập Trình Oop Và Aop


Nếu có bắt kỳ câu hỏi thắc mắt nào vê Spring Aop Là Gì – Lập Trình Oop Và Aop hãy cho chúng mình biết nha, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình nâng cao hơn hơn trong các bài sau nha <3
Bài Nổi Bật  Lãi Suất Tiền Gửi ( Deposit Interest Rate Là Gì ? Deposit Interest Rate Là Gì
Bài viết Spring Aop Là Gì - Lập Trình Oop Và Aop ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết Spring Aop Là Gì - Lập Trình Oop Và Aop Cực hay ! Hay thì hãy ủng hộ team Like hoặc share. Nếu thấy bài viết Spring Aop Là Gì - Lập Trình Oop Và Aop rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nha!!

Các Hình Ảnh Về Spring Aop Là Gì – Lập Trình Oop Và Aop

Spring Aop Là Gì - Lập Trình Oop Và Aop

Các từ khóa tìm kiếm cho bài viết #Spring #Aop #Là #Gì #Lập #Trình #Oop #Và #Aop

Tham khảo thêm kiến thức về Spring Aop Là Gì – Lập Trình Oop Và Aop tại WikiPedia

Bạn hãy tìm thêm thông tin chi tiết về Spring Aop Là Gì – Lập Trình Oop Và Aop từ trang Wikipedia tiếng Việt.◄

Tham Gia Cộng Đồng Tại

💝 Nguồn Tin tại: https://truonggiathien.com.vn/

💝 Xem Thêm Chủ Đề Liên Quan tại : https://truonggiathien.com.vn/hoi-dap/

Give a Comment