论坛首页 Java企业应用论坛

自己编写的struts2+spring+springJdbc框架---设计思路

浏览 9421 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-23  

=============================== 框架 ==================================

◆技术框架
      目标:
           搭建  Struts2+Spring+SpringJDBC 框架
          
      任务:
     
      一、规范
        1.命名规则:
               模块:
                    维护 mai,审核 aud,查询 sea; 
               类:
                  action\MaiXXXAction,service\MaiXXXService
                 
        2.路径规则: 
             类: org.bcm.子系统.模组.模块.action\service\view\config\exception
            
       二、参考
            1.appfuse
            2.springside V1,V2,V3
            3.http://www.iteye.com/topic/47085 一种快速开发的Java Web架构设计和实现
            4.Rapid-framework
                        
       三、搭底层技术框架(封装struts2/spring、提供基础类)  -----------OK
         1.应用struts2实现以下功能:
             URL直接映射到 Action的method;----实现mapper  ----?
             根据请求数据自动封装MapBean; ----实现interceptor ---OK
             根据返回的jsp路径进行转发  ----实现result  ---OK
            
         2.应用spring实现以下功能:  ----OK
             数据源
             初始化DataBase元数据
            
         3.应用spring JDBC 实现持久化操作
             BaseDao  ----基本sql操作  ----OK
             PoDao ----持久化po    ----OK
             sqlbuilder --- 把po转化为sql(参考ddlutils) -----OK
             sqlmap ---sql外部资源化,放入xml  ----??
             提供一个门面类,统一所有操作   ----OK
            
         4.基础类: (参考springside\appfuse\rapid) ----OK
                  org.bcm.base.action.BaseAction
                  org.bcm.base.service.BaseService
                  org.bcm.base.dao.BaseDao
                  org.bcm.base.exception.BaseException
                  org.bcm.base.bean.MapBean
                  org.bcm.base.dao.BasePo
                 
       四、技术组件
         1.tree树形
             xtree
             xloadtree
             extree
            
         2.tab标签    ----OK
             jquery tab
            
         3.grid列表   ----OK
             ecside
            
         4.表单绑定  -----OK
            jodd form
           
         5.表单校验   ----OK
             validation with Prototype   
                   
         6.装饰器sitemesh  ----OK
        
         7.提供公共技术组件
           (1).公共筛选
                jar包
                service中SQL操作
                页面(tab标签、列表、图片)
               
           (2).批次维护
            
       五、功能点改进
          1.管理资源文件 ,各种常量、通用信息 :Constants 类   ----OK
          2.异常框架    ----OK
              美化、完善错误页面
             
           
       六、后期考虑
          1.把sql从代码清除掉,放入SQL资源文件
          2.模版:FreeMarker   ----暂不考虑
          3.缓存框架:数据层缓存
          4.js基库
          5.js高精度计算库
          6.页面显示格式化(标签/js)
          7.防止重复提交
          8.Assert  使用Spring的Assert类,将对函数输入参数进行各种形式的校验
          9.日志
          10.事务处理包含select语句
              dao层提供方法,由程序员手动控制事务,例如:提供如下两个方法:
                     startTransaction();开始事务 
                     commitTransaction();提交事务
                   处于这两个方法中间的数据库操作则自动处于同一事务中.
                   (注意其中的风险,程序员可能没有提交事务,导致资源挂起) 
          11.美化、完善错误页面  
          12.数据库端分页

◆业务框架
      
       1.权限管理
           维护用户
           维护角色
           维护功能模块
          
          要求:
              组织机构、用户、角色、模块(应用、子系统、模组、模块、功能)
              权限系统:
                     维护主体(角色、用户、组织机构)、
                     维护客体(功能、资源)、
                     分配权限、
                     校验权限、
                     获取权限、
                     提供公共方法
          任务:搭基本业务框架
                    权限管理:用户、角色(角色赋权)、模块重构(应用、子系统、模组、模块、功能); 
                    安全管理:校验权限、获取权限
                    3.安全框架:后台验证每个操作的权限

       2.平台platform
            function:
                 System,SubSystem,ModuleGroup,Module,function
            actor:
                 User,Role
            authority:
                    FunctionAuthority  
                   
       3.登录
            认证
            授权
           
       4.工作台          
            管理内存、session(应用、子系统、模组、模块)
               方案1:编写类SessionManager,调用方式 setAttribute(key,value,scope),其中scope取值request、module、modulegroup、subsystem、system;
               方案2:编写类Module、ModuleGroup、SubSystem、System 。继承自HashMap
       
       5.组织机构管理
           维护机构
           维护人员    
                  
       6.业务流程管理
          业务单据
          业务流程模版
          业务流程实例
          自定义审批流程
         
       7.基础数据管理  
          数据字典
          系统参数    
              
       8.系统监控
          性能监控
          在线用户
          日志
             记录当前登录人信息
         
       9.提供公共业务组件  
           模块配置组件
           权限
           业务流程定义
           
       10.FAQ常见问题
           提供实施 或 客户 录入问题处理经验


======================================================================
项目首页:
http://code.google.com/p/bcm-myframework/

   发表时间:2009-02-24  
关注
楼主是一个人做吗
0 请登录后投票
   发表时间:2009-03-03  
呵呵
用了不错的!!!
0 请登录后投票
   发表时间:2009-03-03  
又是造轮子的!从技术上看,放弃了很多好的开源组件,改用自写.好像不太明智吧
0 请登录后投票
   发表时间:2009-03-03  
挺好的!能自己动手实现一遍很不错!支持你!
0 请登录后投票
   发表时间:2009-03-05  
好像没有看到项目?
0 请登录后投票
   发表时间:2009-03-05  
提示你的BASEACTION里
/**      * Convenience method to get the request      * @return current request      */     public HttpServletRequest getRequest() {         return ServletActionContext.getRequest();     }      /**      * Convenience method to get the response      * @return current response      */     public HttpServletResponse getResponse() {         return ServletActionContext.getResponse();     }  

可以
implements
		ServletRequestAware, ServletResponseAware


还有点不明白 既然用struts2
你干什么还搞个MapBean?
多强大的ognl 自动封装你不用
你搞个手动的。不理解。
0 请登录后投票
   发表时间:2009-07-14   最后修改:2009-07-14
包不全 差了几个 另外也没数据备脚本或备份
0 请登录后投票
   发表时间:2009-07-31  
楼主说说你的设计思路吧
0 请登录后投票
   发表时间:2009-07-31  
为了练习,还是说有项目?

难道先确定技术方案,然后分析设计么?

支持自己做东西:)
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics