上一次在第五章中簡單的介紹了一下 AOP中幾個常用的功能,現在我想通過實際的例子來說明它強大的功能,這些例子是項目中實際用到的,而不是一些沒有使用價值的例子。我會介紹它在一個完整的系統中用到的地方,有Tlog,異常處理,事物處理,身分識別驗證(許可權控制),緩衝機制(二級緩衝)。這應該是aop最拿手的了。我會通過寫一個很小的Demo把這些功能全部容納進去。
在你的系統中能否充分發揮aop的作用,一定要保證你的系統要有良好的架構設計和良好的代碼編程,我們知道在spring中提倡面向介面和使用代理的編程思想.如果沒有好的設計架構和良好的代碼編程。即使用上了aop 在效能上也會受影響的。我們知道系統中任何一個環節都很重要。一個環節出問題,可能就會影響到整體的效能。這是我們最難做到的,做到十全十美。在做之前一定要有一個比較完美的解決方案。
接下來我將通過寫一個簡單的系統,系統的簡單描述,不同身份登陸到系統可以執行不同的操作,普通使用者可以瀏覽資訊,一般使用者可以添加資訊,進階使用者可以執行所有的操作。就是一個簡單的新聞發布系統的簡單後台管理。我主要是把aop的幾種常用的功能整合到系統中。這個系統的功能比較簡單,但業務的需求還是可以用到上面提到的幾種功能的。
我們簡單的介紹一下流程。
普通使用者登入後,只能看到最新的新聞資訊。不能執行其他任何操作。同時要通過日誌記錄最近的登陸的使用者。
一般使用者,也就是編輯,他們進去後可以添加新聞,修改新聞。但不能刪除新聞,系統也要對他們的操作進行記錄。
最後就是管理員(進階使用者),可以刪除一系列的操作了。同時也記錄資訊。在刪除時一定要加上交易處理,以防資料意外丟失。
他們登陸之前都要進行身分識別驗證。對訪問比較頻繁的頁面要實行緩衝策略。這樣才能保證系統的更好的運行。這幾個簡單的操作已經把我們提到的幾個功能都用到了,下面就看你如何整合到你的業務中去,如何用代碼來寫了。同時也要考慮到效能的問題。
現在我先把工程搭建一下。用struts+spring+hiberante技術來實現。資料庫用MySql.日誌記錄用常用的log4j,安全架構用acegi,緩衝用EHCache.事務就用spring內建的了。
我們的需求分析完了,再看看技術架構如何搭建。如。
下面是工程目錄的搭建。如。我以後用到那部分我會在詳解的講解。
今天先寫到這.