<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    當(dāng)柳上原的風(fēng)吹向天際的時(shí)候...

    真正的快樂來源于創(chuàng)造

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

    #

         摘要: 權(quán)限系統(tǒng)是稍成規(guī)模的系統(tǒng)中一個(gè)必不可少的部分,操作的可否執(zhí)行,流程的具體走向,業(yè)務(wù)的具體步驟都會(huì)涉及權(quán)限的處理。
    具體來說有兩種權(quán)限的控制方式:一種是等級權(quán)限控制方式,一種是角色權(quán)限控制方式。前者可用于范圍控制,適用于用戶權(quán)力大小不同的場合;后者可用于單點(diǎn)控制,適用于用戶權(quán)力多寡有異的場合。現(xiàn)實(shí)世界中,軍隊(duì)中官銜類似于等級權(quán)限控制,現(xiàn)代企業(yè)中各司其職的權(quán)力分配類似于角色控制。角色權(quán)限控制是把單項(xiàng)權(quán)限一項(xiàng)項(xiàng)的賦予用戶,如同現(xiàn)實(shí)世界中把具體職位一個(gè)個(gè)的賦予某個(gè)員工一樣。在他執(zhí)行操作前,先看他是否擁有執(zhí)行此操作的權(quán)限,如果有則執(zhí)行,否則不執(zhí)行。
    。。。。。
    權(quán)限子系統(tǒng)是企業(yè)應(yīng)用中不可或缺的環(huán)節(jié),它具體的權(quán)限控制方式有兩種:一種是等級權(quán)限控制方式,一種是角色權(quán)限控制方式,其他復(fù)雜的權(quán)限系統(tǒng)都可以由它們組合而來。

    由于業(yè)務(wù)控制的關(guān)系,權(quán)限子系統(tǒng)和其他業(yè)務(wù)子系統(tǒng)的最容易耦合在一起,久而久之會(huì)對程序的可讀性,可維護(hù)性帶來消極影響,而AOP恰好能幫助我們有效降低權(quán)限子系統(tǒng)和其他業(yè)務(wù)子系統(tǒng)的耦合,實(shí)現(xiàn)他們之間的離散化。因此,AOP值得我們認(rèn)真掌握,尤其是其背后的  閱讀全文
    posted @ 2009-01-05 21:38 何楊 閱讀(2041) | 評論 (2)編輯 收藏

         摘要: 使用AOP完善簡單值權(quán)限系統(tǒng),權(quán)限系列文章之三。

    如同一個(gè)成規(guī)模的公司一樣,對于一個(gè)成規(guī)模的應(yīng)用來說,內(nèi)中會(huì)存在著各種子系統(tǒng)以執(zhí)行不同的功能,而且為了協(xié)調(diào)工作,它們往往是交織在一起,就像上一個(gè)版本中權(quán)限子系統(tǒng)與文檔處理子系統(tǒng)交織一樣。

    子系統(tǒng)交織是必要的,但子系統(tǒng)間過多過緊密的耦合并不合理。因?yàn)榻豢棔?huì)增加軟件系統(tǒng)的熵值,使得系統(tǒng)隨著功能的增加和細(xì)化變得越來越復(fù)雜而難于控制,最后不得不推倒重來,給個(gè)人和公司帶來巨大的損失。這是軟件業(yè)普遍的問題,在國內(nèi)公司和外包公司都不罕見。

    因此,在程序的編寫過程中,程序員必須有意識的減少子系統(tǒng)之間的交織,使它們離散化,利用Spring的AOP可以有效幫助我們做到這一點(diǎn)。對于簡單值權(quán)限系統(tǒng),使用AOP進(jìn)行子系統(tǒng)離散化的具體思路如下:

    1.將DocService中負(fù)責(zé)權(quán)限的代碼(屬性和函數(shù))都分離,放置到一個(gè)專門的權(quán)限處理類PrivilegeService中。
    2.使用Spring的ProxyFactoryBean,做成DocService的代理,讓PrivilegeServi  閱讀全文
    posted @ 2009-01-02 16:54 何楊 閱讀(780) | 評論 (0)編輯 收藏

         摘要: 簡單值控制權(quán)限系統(tǒng)的改進(jìn),權(quán)限系列文章之二。

    上一講中簡單權(quán)限系統(tǒng)的權(quán)限控制值是寫在XML配置文件中的,如果需要調(diào)整這些值還需要修改配置文件,對于Web系統(tǒng)來說,此后還需要重新打包,測試和發(fā)布。這樣無法實(shí)現(xiàn)動(dòng)態(tài)修改,即不修改程序代碼和不修改配置文件,在程序處于運(yùn)行的狀態(tài)下也能改變權(quán)限的值。

    對于這樣的需求變更,我們可以改變權(quán)限子系統(tǒng)的具體實(shí)現(xiàn)并加入一些輔助類的支持,具體思路如下:
    1.要實(shí)現(xiàn)動(dòng)態(tài)改變權(quán)限,那權(quán)限的值必須放在數(shù)據(jù)庫中,通過SQL語句來存取具體的值。
    2.存儲(chǔ)權(quán)限的表應(yīng)該包含兩個(gè)字段,一個(gè)為權(quán)限名,它必須唯一;一個(gè)是權(quán)限值。
    3.應(yīng)該用一個(gè)專門的類來負(fù)責(zé)權(quán)限的獲取,這個(gè)類為IDocService的實(shí)現(xiàn)類DocService所用。
    4.權(quán)限存取類和具體權(quán)限的名通過注入的方式放入DocService中。  閱讀全文
    posted @ 2009-01-02 12:55 何楊 閱讀(383) | 評論 (0)編輯 收藏

         摘要: 簡單值控制權(quán)限系統(tǒng)的設(shè)計(jì),權(quán)限系列文章之一。

    在一個(gè)CMS系統(tǒng)中,用戶User可以通過接口IDocService向系統(tǒng)添加,刪除,更新各種文章Doc,現(xiàn)請你設(shè)計(jì)IDocService的一個(gè)實(shí)現(xiàn)類,這個(gè)類除了能完成接口指定的功能外,還要能實(shí)現(xiàn)權(quán)限控制。
    具體的權(quán)限控制就是:用戶User擁有一個(gè)privilegePoint的屬性,它代表著用戶的權(quán)限大小,當(dāng)此值大于20時(shí)用戶能添加文章,大于40時(shí)能更新文章,大于60時(shí)能刪除文章。

    下面請看具體實(shí)現(xiàn):  閱讀全文
    posted @ 2009-01-02 10:35 何楊 閱讀(472) | 評論 (1)編輯 收藏

    中文版:
    http://download2.bea.com/pub/platform/92/server920_zh_CN_win32.exe   

    確實(shí)是個(gè)好東西,難能可貴的是中文版,大家有空應(yīng)該下載下來玩玩。
    posted @ 2008-12-25 08:29 何楊 閱讀(1451) | 評論 (1)編輯 收藏

    屏幕截圖一:


    屏幕截圖二:


    程序下載:
    http://m.tkk7.com/Files/heyang/StrutsWebController20081204153042.rar
    posted @ 2008-12-04 15:38 何楊 閱讀(618) | 評論 (0)編輯 收藏

         摘要: Oracle的偽列rownum可以標(biāo)識一條數(shù)據(jù)的行號,它常用做分頁,起到MySql數(shù)據(jù)庫中l(wèi)imit語句同樣的作用。
    在使用rownum時(shí),一個(gè)要特別注意的地方是Rownum是在查詢之后排序之前賦值的,不能用于在一次查詢中對行進(jìn)行限制。要使用rownum對行集進(jìn)行進(jìn)行有效控制,必須使用子查詢。
      閱讀全文
    posted @ 2008-12-02 15:41 何楊 閱讀(397) | 評論 (0)編輯 收藏

    在WebApp中獲得XMLWebApplicationContext的步驟
    1.在Web.xml中配置上下文載入器.
    2.指定上下文載入器的配置文件.
    3.獲得應(yīng)用上下文.

    1.在Web.xml中配置上下文載入器
    根據(jù)你的系統(tǒng)情況,你可以選擇兩種上下文載入器:ContextLoaderListener和ContextLoaderServlet.如果你的Web容器支持Servlet2.3標(biāo)準(zhǔn)或更高,你可以使用兩者,否則只能使用后者.
    ContextLoaderListener在Web.xml應(yīng)該如下配置:

    <listener> 
         
    <listener-class>
              org.springframework.web.context.ContextLoaderListener
         
    </listener-class> 
    </listener> 

    ContextLoaderServlet在Web.xml應(yīng)該如下配置:

    <servlet>
      
    <servlet-name>context</servlet-name>
      
    <servlet-class>
      org.springframework.web.context.ContextLoaderServlet
      
    </servlet-class>
      
    <load-on-startup>1</load-on-startup>
    </servlet>


    2.指定上下文載入器的配置文件

    不論你使用的那種上下文載入器,你都應(yīng)該指明Spring配置文件的位置.如果沒有指定,上下文載入器將把/web-inf/application-Context.xml當(dāng)作Spring配置文件。
    要指定Spring配置文件的位置,你可以在Servlet上下文設(shè)置contextConfigLocation參數(shù)來為上下文載入器指定一個(gè)或多個(gè)Spring配置文件(使用通配符或是用逗號隔開)。如下所示:

    <context-param>
        
    <param-name>
             contextConfigLocation
       
    </param-name>
       
    <param-value>
              /WEB-INF/cfg/bean.xml
       
    </param-value>
    </context-param>

     

    3.獲得應(yīng)用上下文
    接下來我們就可以獲得ApplicationContext了,代碼如下:

    WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext); 

    在一個(gè)自啟動(dòng)的Servlet中,我們可以這樣獲得它:

    public class InitialSystemServlet extends HttpServlet {
      
    public void init(ServletConfig config) throws ServletException {
        
    // 取得Spring的上下文
        WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(config.getServletContext());
        ..
      }

      
      ..
    }

    如果把獲得的上下文的地址給一個(gè)靜態(tài)引用,我們以后就可以在應(yīng)用中的任意位置使用ApplicationContext了。

    posted @ 2008-11-24 23:19 何楊 閱讀(8650) | 評論 (1)編輯 收藏

    頁面展示:

    Tomcat工程下載:
    http://m.tkk7.com/Files/heyang/StrutsAdvanced20081124115121.rar
    posted @ 2008-11-24 11:56 何楊 閱讀(155) | 評論 (0)編輯 收藏

    僅列出標(biāo)題
    共28頁: First 上一頁 20 21 22 23 24 25 26 27 28 
    主站蜘蛛池模板: 无码色偷偷亚洲国内自拍| 日韩免费毛片视频| 伊人久久国产免费观看视频| 亚洲最大免费视频网| 国产日韩亚洲大尺度高清| 国产男女猛烈无遮挡免费视频 | 一边摸一边爽一边叫床免费视频| 亚洲欧洲精品国产区| 亚洲国产精品成人久久| 亚洲精品第一国产综合境外资源| 女人18特级一级毛片免费视频| 99爱在线观看免费完整版| 天堂在线免费观看| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 亚洲av无码成人影院一区| 亚洲乱人伦精品图片| 无码乱人伦一区二区亚洲| 亚洲精品99久久久久中文字幕| 日韩一区二区免费视频| 精品久久久久国产免费| 999国内精品永久免费视频| 3d成人免费动漫在线观看 | 亚洲精选在线观看| 亚洲精品卡2卡3卡4卡5卡区| 免费吃奶摸下激烈视频| 日韩电影免费在线观看视频| 国产精品久久久久久久久久免费| 久久免费看黄a级毛片| 中文字幕亚洲免费无线观看日本| 精品国产污污免费网站| 国产免费AV片在线观看| 99re6在线视频精品免费| 91在线视频免费观看| 热99RE久久精品这里都是精品免费 | 一区二区三区在线免费| 特级一级毛片免费看| 一个人看的www免费高清| 不卡视频免费在线观看| 无码一区二区三区免费| 67pao强力打造国产免费| 色影音免费色资源|