zoukankan      html  css  js  c++  java
  • 阅读jeecms源码总结

    转载:https://blog.csdn.net/a382064640?t=1

    Jeecsm使用框架包括:springMVC,HIbernate(数据持久层框架),Quartz(作业调度框架),ant(自动编译构建框架,在自动生成模版类时用到),Httpclient,c3p数据池,ehcache缓存框架,dom4j框架(解析xml),DWR框架(该框架可以通过js调用java函数),Lucene全文检索框架,Jcaptcha验证码生成框架,sl4f和Log4j日志框架,Jmagick图片处理框架,JODConverter文件转化框架及FCK编辑器及Freemarker框架

    Jeecsm框架包结构:

    Jeecsm有三大主要包分别为core(核心包),common(公共类库包)和csm(网站主要包)

    Action:页面交互层包,包含与页面交互类

    Dao:DAO层包,包含封装数据操作类

    Web:包含与页面有关的拦截器、过滤器、校验器等

    Security:包含与安全有关联的类

    Manager:业务逻辑层包,包含业务处理类

    Entity:模型层包,包含数据模型类

    Tpl:包含模版文件管理类,包括上传,删除等

    Lucene:包含整站全文检索处理类

    Staticpage:静态页面处理模块,包含与静态页面生成有关的类,包括该功能模块的页面交互层,DAO层和业务逻辑层包对象

    Statistic:统计功能模块,包含与统计相关的处理类,包括该功能模块的页面交互层,DAO层和业务逻辑层包对象

    Task:包含定时处理任务,定时器等

    Tmplate:包含模版生成类,及模版文档

    Common包都是一些工具包,就不详解释

    Core核心包:封装与系统架构基础,如:登录,文件上传,图片模版保存等

    Jeecsm模型包架构(个人觉得比较好的包结构设计,符合面向对象思想)

     

     

    Bhm包:包含全部hibernate配置文件,将配置文件和实体类分离

    Base包:该包下全部对象都是抽象类,其封装数据模型及其基本操作,与模型类一一对应

    模型类:继承Base包对应的抽象类,主要封装一些额外数据操作

    总结:

    1. 数据模型包中将Hibernate配置文件抽到一个包中管理,有利配置文件维护,将逻辑操作和数据模型分离,有利系统维护和问题域定位(这一点我们可以借鉴)

    2. 混合式包结构设计,网站业务逻辑按分层结构设计,而功能使用模块结构。前者灵活性和性能高但不利于维护,后者维护性和伸缩性好但不灵活。这导致站内业务不同层之间高耦合,不利于站内业务维护。

    3. 函数体中构建数据库操作语句,应视情况而定,与数据库交流频率多的语句应当作类的静态属性存放,不应该也放在函数体中,这将导致,内存消耗大,JVM虚拟机会频繁调用CG回收器。(如:用户访问)

    4. 动态构建sql语句应该使用StringBuilder或StringBuffer(线程安全),不应该在函数中通过“+”连接(除非是一条语句)

    5. 增加一个web包用来存放与容器有关的拦截器或过滤器,有利于维护和问题域定位(可以借鉴)

  • 相关阅读:
    第一模块第一章 review
    python练习题:三级菜单
    python list()总结
    python中index()、find()方法
    python中join()函数、list()函数补充的用法
    python中关键字的总结
    python中for循环的用法
    python中range()、list()函数的用法
    python中pop()函数的用法
    python中split()、os.path.split()函数用法
  • 原文地址:https://www.cnblogs.com/Jeely/p/11214318.html
Copyright © 2011-2022 走看看