- Spring Boot進階:原理、實戰與面試題分析
- 鄭天民
- 480字
- 2022-07-05 09:41:46
第3章
面向切面概念和實踐
在軟件開發領域,基于面向對象編程(Object Oriented Programming,OOP)的思想和實踐,應用程序被劃分為多個類和模塊。我們通過引入接口來實現松散耦合的設計,而封裝和繼承使得我們可以隱藏對象數據并擴展功能。但反過來講,隨著系統的演進,OOP的這些特點也增加了系統的復雜性。為了解決這個問題,我們開始遵循將應用程序劃分為不同邏輯層和模塊的設計原則,常見的如Web服務層、業務服務層和數據訪問層。
但是,即使將功能劃分為不同的層,所有層中也可能需要某些通用的功能,例如安全性、日志記錄、緩存和性能監視,這些功能被稱為橫切關注點(Crosscutting Concern)。在OOP中,這些橫切關注點的代碼與業務邏輯處理代碼往往是混合在一起的,圖3-1所示就是一個典型的場景。

圖3-1 業務代碼與橫切關注點代碼混合示意圖
圖3-1展示了在業務服務層組件的實現過程中,事務處理和安全控制代碼與業務邏輯代碼混合在了一起。這樣的實現降低了代碼的可重用性,增加了維護成本,并且違反了單一責任原則。
那么,如何有效實現這些橫切關注點?這就需要引入面向切面編程(Aspect Oriented Programming,AOP)的設計理念。在本章中,我們將討論Spring容器中AOP的概念以及實現這些概念的方法和實踐。
推薦閱讀
- ServiceNow Application Development
- ASP.NET Core 5.0開發入門與實戰
- 騰訊iOS測試實踐
- Java入門很輕松(微課超值版)
- BeagleBone Media Center
- Mastering Google App Engine
- 組態軟件技術與應用
- 深入淺出React和Redux
- PHP編程基礎與實例教程
- Python大學實用教程
- Hands-On Robotics Programming with C++
- 深入淺出 HTTPS:從原理到實戰
- 關系數據庫與SQL Server 2012(第3版)
- Java 9:Building Robust Modular Applications
- ASP.NET本質論