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