当柳上原的风吹向天际的时候...

真正的快乐来源于创造

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

#

     摘要: 权限系统是稍成规模的系统中一个必不可少的部分,操作的可否执行,流程的具体走向,业务的具体步骤都会涉及权限的处理。
具体来说有两种权限的控制方式:一种是等级权限控制方式,一种是角色权限控制方式。前者可用于范围控制,适用于用户权力大小不同的场合;后者可用于单点控制,适用于用户权力多寡有异的场合。现实世界中,军队中官衔类似于等级权限控制,现代企业中各司其职的权力分配类似于角色控制。角色权限控制是把单项权限一项项的赋予用户,如同现实世界中把具体职位一个个的赋予某个员工一样。在他执行操作前,先看他是否拥有执行此操作的权限,如果有则执行,否则不执行。
。。。。。
权限子系统是企业应用中不可或缺的环节,它具体的权限控制方式有两种:一种是等级权限控制方式,一种是角色权限控制方式,其他复杂的权限系统都可以由它们组合而来。

由于业务控制的关系,权限子系统和其他业务子系统的最容易耦合在一起,久而久之会对程序的可读性,可维护性带来消极影响,而AOP恰好能帮助我们有效降低权限子系统和其他业务子系统的耦合,实现他们之间的离散化。因此,AOP值得我们认真掌握,尤其是其背后的  阅读全文
posted @ 2009-01-05 21:38 何杨 阅读(2034) | 评论 (2)编辑 收藏

     摘要: 使用AOP完善简单值权限系统,权限系列文章之三。

如同一个成规模的公司一样,对于一个成规模的应用来说,内中会存在着各种子系统以执行不同的功能,而且为了协调工作,它们往往是交织在一起,就像上一个版本中权限子系统与文档处理子系统交织一样。

子系统交织是必要的,但子系统间过多过紧密的耦合并不合理。因为交织会增加软件系统的熵值,使得系统随着功能的增加和细化变得越来越复杂而难于控制,最后不得不推倒重来,给个人和公司带来巨大的损失。这是软件业普遍的问题,在国内公司和外包公司都不罕见。

因此,在程序的编写过程中,程序员必须有意识的减少子系统之间的交织,使它们离散化,利用Spring的AOP可以有效帮助我们做到这一点。对于简单值权限系统,使用AOP进行子系统离散化的具体思路如下:

1.将DocService中负责权限的代码(属性和函数)都分离,放置到一个专门的权限处理类PrivilegeService中。
2.使用Spring的ProxyFactoryBean,做成DocService的代理,让PrivilegeServi  阅读全文
posted @ 2009-01-02 16:54 何杨 阅读(773) | 评论 (0)编辑 收藏

     摘要: 简单值控制权限系统的改进,权限系列文章之二。

上一讲中简单权限系统的权限控制值是写在XML配置文件中的,如果需要调整这些值还需要修改配置文件,对于Web系统来说,此后还需要重新打包,测试和发布。这样无法实现动态修改,即不修改程序代码和不修改配置文件,在程序处于运行的状态下也能改变权限的值。

对于这样的需求变更,我们可以改变权限子系统的具体实现并加入一些辅助类的支持,具体思路如下:
1.要实现动态改变权限,那权限的值必须放在数据库中,通过SQL语句来存取具体的值。
2.存储权限的表应该包含两个字段,一个为权限名,它必须唯一;一个是权限值。
3.应该用一个专门的类来负责权限的获取,这个类为IDocService的实现类DocService所用。
4.权限存取类和具体权限的名通过注入的方式放入DocService中。  阅读全文
posted @ 2009-01-02 12:55 何杨 阅读(377) | 评论 (0)编辑 收藏

     摘要: 简单值控制权限系统的设计,权限系列文章之一。

在一个CMS系统中,用户User可以通过接口IDocService向系统添加,删除,更新各种文章Doc,现请你设计IDocService的一个实现类,这个类除了能完成接口指定的功能外,还要能实现权限控制。
具体的权限控制就是:用户User拥有一个privilegePoint的属性,它代表着用户的权限大小,当此值大于20时用户能添加文章,大于40时能更新文章,大于60时能删除文章。

下面请看具体实现:  阅读全文
posted @ 2009-01-02 10:35 何杨 阅读(462) | 评论 (1)编辑 收藏

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

确实是个好东西,难能可贵的是中文版,大家有空应该下载下来玩玩。
posted @ 2008-12-25 08:29 何杨 阅读(1442) | 评论 (1)编辑 收藏

屏幕截图一:


屏幕截图二:


程序下载:
http://www.blogjava.net/Files/heyang/StrutsWebController20081204153042.rar
posted @ 2008-12-04 15:38 何杨 阅读(612) | 评论 (0)编辑 收藏

     摘要: Oracle的伪列rownum可以标识一条数据的行号,它常用做分页,起到MySql数据库中limit语句同样的作用。
在使用rownum时,一个要特别注意的地方是Rownum是在查询之后排序之前赋值的,不能用于在一次查询中对行进行限制。要使用rownum对行集进行进行有效控制,必须使用子查询。
  阅读全文
posted @ 2008-12-02 15:41 何杨 阅读(390) | 评论 (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 何杨 阅读(8627) | 评论 (1)编辑 收藏

页面展示:

Tomcat工程下载:
http://www.blogjava.net/Files/heyang/StrutsAdvanced20081124115121.rar
posted @ 2008-11-24 11:56 何杨 阅读(150) | 评论 (0)编辑 收藏

仅列出标题
共28页: First 上一页 20 21 22 23 24 25 26 27 28