Spring Aop Là Gì ? Understanding Spring Aop

 - 
1. AOP.. là gì?

Aspect Oriented Programming (AOP) – lập trình sẵn hướng khía cạnh: là một trong nghệ thuật lập trình (thứ hạng nlỗi lập trình hướng đối tượng) nhằm phân tách bóc lịch trình thành phương pháp moudule riêng biệt rẽ, riêng biệt, ko nhờ vào nhau.quý khách hàng đã xem: Spring aop là gì

khi chuyển động, công tác đang phối hợp các module lại để triển khai những công dụng dẫu vậy Lúc sửa đổi 1 tính năng thì chỉ việc sửa 1 module.

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

AOPhường không hẳn dùng làm thay thế OOPhường mà nhằm bổ sung mang đến OOPhường.

*

Ví du 1:

1 công ty được chia thành nhiều phòng ban, phòng chuyên môn, phòng kế toán, phòng kinh doanh (từng phòng y hệt như một module trong cmùi hương trình)…

Mỗi phòng tiến hành một trách nhiệm riêng, cơ mà phải phối hợp lại nhằm quản lý và vận hành một chủ thể.

– Trong AOP.. bao gồm quan niệm “lát cắt”, “điểm cắt”, tạm bợ đọc là module A vẫn xen vào module B để tiến hành 1 tác dụng như thế nào này mà không có tác dụng ảnh hưởng module B, “điểm cắt” là địa điểm nhưng mà module A xen vào module B

lấy ví dụ, trong chủ thể, toàn bộ những nhân viên phần nhiều rất cần được quyết tân oán thuế, nếu từng bạn 1 triển khai đã tốn không ít thời gian và ảnh hưởng cho tới đơn vị. Phòng kế tân oán đang gộp lại cùng tiến hành quyết toán mang lại tất cả nhân viên cấp dưới. Bây giờ quy định thuế thay đổi, thì cũng chỉ việc từng chống kế toán sửa đổi lại mang đến phù hợp, ko tác động gì cho tới các ban ngành không giống. (Module chống kế tân oán tiến hành lát cắt cùng với các chống còn lại ngơi nghỉ trọng trách quyết tân oán thuế)

Điểm giảm tại đây tùy thuộc theo xếp mong muốn, quy định thử dùng, ví dụ hình thức trải nghiệm là phải quyết toán thuế thời điểm cuối năm thì phòng kế toán vẫn tiến hành lát cắt quyết toán thù thuế cho các ban ngành sót lại vào cuối năm.

lấy một ví dụ 2:

Trong code bạn thường tiến hành 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 tương quan gì đến công dụng của method.

Xem thêm: " Self Confident Là Gì ? Những Tiết Lộ Về Self Confidence Nghĩa Của Từ Self

Bây tiếng áp dụng AOPhường., ta sẽ phân bóc tách chức năng log ra một module riêng rẽ cùng dùng nó thực hiện những lát cắt cùng với những method nên triển khai log.

Muốn nắn log sinh sống đầu method, điểm giảm vẫn là làm việc đầu những method, mong muốn giảm ngơi nghỉ cuối method thì điểm giảm sẽ là cuối method.

ví dụ như 3:

Trong thiết kế web, có 1 khái nhiệm filter, Có nghĩa là tất cả những request được chọn sẽ gần như chạy qua filter đó.

Xem thêm: Hàm Số Liên Tục Là Gì - Lý Thuyết Về Hàm Số Liên Tục

2. Ưu nhược điểm của AOPhường

Ưu điểm:

Thiết kế 1-1 giản: “You aren’t gonmãng cầu need it (YAGNI)” – bọn họ chỉ thiết lập hồ hết thiết bị chúng ta thực thụ buộc phải cơ mà không bao giờ thiết lập trước. Cài đặt chương trình một giải pháp trong sáng: từng một module chỉ có tác dụng loại cơ mà nó cần phải làm cho, giải quyết và xử lý được nhì sự việc code tangling và code scattering. Tái áp dụng dễ dãi.

Nhược điểm:

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

Mình vẫn đem ví dụ đến bài toán tách bóc tính năng log nhằm minc họa.

Vi xử lý Core concerns: hàm thiết yếu của lịch trình (những method đề xuất thực hiện log) Crosscutting concerns: đông đảo công dụng khác của chương trình: (tính năng log) Join points: một điểm của lịch trình, là chỗ hoàn toàn có thể chèn đầy đủ “custom action” của người sử dụng Pointcut: có rất nhiều cách để xác định joinpoint, các phương pháp như vậy được Điện thoại tư vấn là pointcut. Advice: là đều cách xử trí prúc được tiếp tế xử trí chính, code nhằm thực hiện những giải pháp xử lý này được call Adivce. 4. Code ví dụ bằng Java.

Để thực hiện AOP trong Java ta hoàn toàn có thể áp dụng các thiết đặt cung ứng bởi

AspectJ Spring AOP. JBoss AOP ví dụ như AOP cùng với Spring AOP: https://stackjava.com/spring/spring-aop-1.html lấy ví dụ như AOP cùng với Spring + AspectJ: https://stackjava.com/spring/spring-core-aop-aspectj.html