1)部門模塊
1)設計實體/數據庫表(領域建模/數據庫建模)
2)設計業務bean(DAO層)
有些項目有Service層和DAO層,這樣主要是為了解決有多個數據庫來源。
一般的項目有service層就夠了,不然70%的代碼都是重復的。
不管有沒有DAO層,事物一定要在業務層打開。
3)完成相應業務的action/jsp
2)員工模塊
a)員工的分頁列表
b)員工的添加【ajax校驗用戶名是否存在】/離職設置/改
3)權限定義與權限組模塊
1>對系統的所有功能定義相應的權限。
2>由網管針對不同部門不同員工分配權限組,在分配權限組時,可以選擇該組具有的權限
3>把權限組分配給某個員工,這個員工就會具備該組下的所有權限。
4)權限攔截模塊 A粗粒度(Filter) B細粒度(AOP)
細粒度的權限設置有兩種方案:
1:創建一個permission表(這種方案改起來比較麻煩,而且在應用初始化的時候必須加載表中的數據)
class method [module privilegeValue]
2:JDK5的注解(這種方案要求必須使用JDK1.5以上的版本)
注解的作用實際上等價於xml,起到了一個配置的作用。
項目用的是Struts1和Spring2,這時遇到了問題:
繼承Action的類中的方法能被攔截到,而繼承DispatchAction的類中的方法不能被攔截到
原因:Spring的bug/動態代理技術的問題
Spring不能對通過反射技術調用的方法應用上通知(advice)
如果沒有實現接口的話,Spring使用cglib為action生成一個代理對象,
cglib是通過繼承目標類,並非重寫所有非finanl的方法來實現
Spring只會為在本類定義的方法應用通知,但是繼承DispatchAction的類的execut方法用的是父類的方法。
他調用的是目標對象的方法,而不是代理對象的方法。
我們可以自己寫一個Permission的Annotation來實現。