上一次在第五章中簡單的介紹了一下 aop
中幾個常用的功能,現在我想通過實際的例子來說明它強大的功能,這些例子是專案中實際用到的,而不是一些沒有使用價值的例子。我會介紹它在乙個完整的系統中用到的地方,有日誌處理,異常處理,事物處理,身份驗證(許可權控制),快取機制(二級快取)。這應該是aop最拿手的了。我會通過寫乙個很小的demo
把這些功能全部容納進去。
在你的系統中能否充分發揮aop的作用,一定要保證你的系統要有良好的架構設計和良好的**程式設計,我們知道在spring中提倡面向介面和使用**的程式設計思想.如果沒有好的設計架構和良好的**程式設計。即使用上了aop 在效能上也會受影響的。我們知道系統中任何乙個環節都很重要。乙個環節出問題,可能就會影響到整體的效能。這是我們最難做到的,做到十全十美。在做之前一定要有乙個比較完美的解決方案。
接下來我將通過寫乙個簡單的系統,系統的簡單描述,不同身份登陸到系統可以執行不同的操作,普通使用者可以瀏覽資訊,一般使用者可以新增資訊,高階使用者可以執行所有的操作。就是乙個簡單的新聞發布系統的簡單後台管理。我主要是把aop的幾種常用的功能整合到系統中。這個系統的功能比較簡單,但業務的需求還是可以用到上面提到的幾種功能的。
我們簡單的介紹一下流程。
普通使用者登入後,只能看到最新的新聞資訊。不能執行其他任何操作。同時要通過日誌記錄最近的登陸的使用者。
一般使用者,也就是編輯,他們進去後可以新增新聞,修改新聞。但不能刪除新聞,系統也要對他們的操作進行記錄。
最後就是管理員(高階使用者),可以刪除一系列的操作了。同時也記錄資訊。在刪除時一定要加上事務處理,以防資料意外丟失。
他們登陸之前都要進行身份驗證。對訪問比較頻繁的頁面要實行快取策略。這樣才能保證系統的更好的執行。這幾個簡單的操作已經把我們提到的幾個功能都用到了,下面就看你如何整合到你的業務中去,如何用**來寫了。同時也要考慮到效能的問題。
現在我先把工程搭建一下。用struts+spring+hiberante技術來實現。資料庫用mysql.日誌記錄用常用的log4j,安全框架用acegi,快取用ehcache.事務就用spring自帶的了。
我們的需求分析完了,再看看技術框架如何搭建。如下圖。
下面是工程目錄的搭建。如下圖。我以後用到那部分我會在詳解的講解。
今天先寫到這.
第五章 面向切面程式設計 AOP 之二
上一次在第五章中簡單的介紹了一下 aop中幾個常用的功能,現在我想通過實際的例子來說明它強大的功能,這些例子是專案中實際用到的,而不是一些沒有使用價值的例子。我會介紹它在乙個完整的系統中用到的地方,有日誌處理,異常處理,事物處理,身份驗證 許可權控制 快取機制 二級快取 這應該是aop最拿手的了。我...
第五章 面向切面程式設計 AOP 之一
大家可能對物件導向的程式設計已經很熟悉了,目前物件導向的技術已經很流行。其得到了很多開發者的認同。比起以前的面向過程,簡直是一種質的飛躍。既然有物件導向的程式設計的模式了,為什麼還要面向切面的思想呢?物件導向的程式設計主要注重核心業務,而面向切面程式設計主要關注一些不是核心的業務,但又是必須的輔助功...
面向切面程式設計 AOP 二
本次要講的時候如何改進 模式,具體來說是動態 模式,動態 模式一般實現aop框架,不懂aop的童鞋看這裡。我前面的博文也實現了乙個aop框架 可以參考我前面的博文 原創 c 輕量級aop框架 但是那個aop框架存在乙個缺陷,就是不支援切面的組合,這一點大大降低了其通用性,本次通過c 11改進,使ao...