1.引言
系統設計就是針對某一問題通過需求分析、需求設計、代碼編寫、系統測試后編制的解決這一問題的軟件成品。上世紀80年代OOP的出現在軟件開發領域中引起了重大變革,其思想是對業務邏輯進行劃分(模塊化),再對每個小模塊進行求解,最后將各個小模塊的求解通過一定的方式進行整合最終形成整個系統。但是隨著軟件產品的發展,人們需求的不斷提高,開發成本和難度也在隨之增加。面對著這一系列的問題,周期短、易維護、可擴展就成了開發人員首要考慮的問題。對于一個大型的系統,如日志、安全性、異常處理等需求要用到多個模塊中,實現的方法很多:(1)直接在原來的業務邏輯代碼基礎上添加代碼,但這樣既造成了代碼的混亂,又不易閱讀和修改。(2)采用繼承,耦合性強,如果父類要進行修改,子類也得修改,關系很死,不夠靈活。(3)組合,這種方式可以實現多個類來回組合,比繼承靈活,但如果有多個bean,它不能自動加載,所以組合也很難實現。針對上面的問題,本文提出了新的解決辦法:把這些日志邏輯單獨封裝出來,需要的時候在配置文件中調用即可,無需修改業務邏輯,這就是AOP(Aspect Oriented Programming,面向方向編程)。