在線購物系統權限模塊


    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來實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM