當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

          #

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

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

               摘要: 使用AOP完善簡單值權限系統,權限系列文章之三。

          如同一個成規模的公司一樣,對于一個成規模的應用來說,內中會存在著各種子系統以執行不同的功能,而且為了協調工作,它們往往是交織在一起,就像上一個版本中權限子系統與文檔處理子系統交織一樣。

          子系統交織是必要的,但子系統間過多過緊密的耦合并不合理。因為交織會增加軟件系統的熵值,使得系統隨著功能的增加和細化變得越來越復雜而難于控制,最后不得不推倒重來,給個人和公司帶來巨大的損失。這是軟件業普遍的問題,在國內公司和外包公司都不罕見。

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

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

               摘要: 簡單值控制權限系統的改進,權限系列文章之二。

          上一講中簡單權限系統的權限控制值是寫在XML配置文件中的,如果需要調整這些值還需要修改配置文件,對于Web系統來說,此后還需要重新打包,測試和發布。這樣無法實現動態修改,即不修改程序代碼和不修改配置文件,在程序處于運行的狀態下也能改變權限的值。

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

               摘要: 簡單值控制權限系統的設計,權限系列文章之一。

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

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

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

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

          屏幕截圖一:


          屏幕截圖二:


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

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

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

          1.在Web.xml中配置上下文載入器
          根據你的系統情況,你可以選擇兩種上下文載入器:ContextLoaderListener和ContextLoaderServlet.如果你的Web容器支持Servlet2.3標準或更高,你可以使用兩者,否則只能使用后者.
          ContextLoaderListener在Web.xml應該如下配置:

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

          ContextLoaderServlet在Web.xml應該如下配置:

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


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

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

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

           

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

          WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext); 

          在一個自啟動的Servlet中,我們可以這樣獲得它:

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

            
            ..
          }

          如果把獲得的上下文的地址給一個靜態引用,我們以后就可以在應用中的任意位置使用ApplicationContext了。

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

          頁面展示:

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

          僅列出標題
          共28頁: First 上一頁 20 21 22 23 24 25 26 27 28 
          主站蜘蛛池模板: 天峻县| 山阴县| 修水县| 湘潭县| 云安县| 永丰县| 涿州市| 上思县| 乳源| 芜湖县| 吉木萨尔县| 江安县| 定襄县| 鄂伦春自治旗| 读书| 鹤壁市| 郓城县| 松潘县| 申扎县| 万山特区| 孙吴县| 偏关县| 闻喜县| 延庆县| 玛纳斯县| 越西县| 永川市| 龙岩市| 顺平县| 香格里拉县| 昆明市| 开鲁县| 沙河市| 北流市| 集安市| 正阳县| 榕江县| 永和县| 武平县| 崇仁县| 寿宁县|