jeecms 基本架构研究
最近工作需要内容管理系统,下载了jeecms v5 顺便学习一下它的架构:
采用框架为:Hibernate3.3.2+spring3.05+springMVC+freemarker2.3.16
Hibernate:采用非注解持久化操作对数据访问层(DAO)的实现.
优点:1.支持多个数据库的切换oracle,mysql等支持,
2.支持以及缓存的和二级缓存的使用。
缺点:1.sql语句部分有框架自动生成,不方便性能优化。针对系统性能要求比较高的系统hibernate自动生成实现比较难。
2.不方便维护。
3.针对hibernate的高级使用对开发人员要求很高,学习曲线比较高。
Spring:实现项目中各层的粘合,以及解耦事务处理。
优点:1.通过IOC注入使各组件解耦。
2.使用AOP实现事物的处理。采用注解事物,也深知其使用的优缺点。优点干净简洁易修改,缺点不利于维护,业务与配置混杂。
3.方便和其他第三方框架整合,jar可以按需分配不需要全部导入。
4.框架活跃程度比较高。
5.便于测试,易于维护
缺点:
1.针对部分代码底层采用反射或者代理性能不是太好。
springMVC负责控制层的业务逻辑的处理。
freemarker:负责页面的页面和展示。
系统中模块划分比较明确,分为三部分cms,core,common。
cms根据cms中层的划分和作用划分action,dao,entity,lucene,service,task等。
core主要一些系统管理相关的权限,配置,数据文件,Ftp管理以及用户认证。
common:主要是一些工具的封装使用如:fck,验证码,图片操作,ip追踪,搜索,安全。文件上传等工具雷。
此系统基于整站模板引擎技术,js,Css,图片等资源与模板分离,模板放置在WEB-INF下,因此仅能通过springmvc去调用,安全性非常棒,分离也非常清晰。页面请求使用了伪静态,便于搜索引擎收录。然后就是有一套完善的日志系统,搜索采用了流行的lucene和baoding分词做搭配。此外数据库配有连接池commons-pool,据说性能不是太好。系统中为了防止xss攻击采用过滤器处理用户的操作请求信息,但是处理不够完善。hibernate配有二级缓存与持久化缓存。验证码也使用了现成的组件jcaptcha简单易用,Ajax使用了Json介质,在线编辑器使用的FCK。针对用户的追踪和分析采用的ipseek针对用户来源的分析。通过封装类似spring-security的权限管理,控制用户留言的控制以及用户权限和后台管理制发布新闻的控制审查。针对用户的用户回话的管理采用的缓存管理回话中心,保证了系统的分布式的使用。在图片操作方面采用 jmagick,jar比较小有图片操作瑞士军刀之称。源码的研究还是具有一定的价值的,便于以后开发类似系统总结经验和实践。
jeecms 基本架构研究的更多相关文章
- mysql 主从同步出问题,重新修复从库 - web架构研究
mysql 主从同步出问题,重新修复从库 - web架构研究 mysql 主从同步出问题,重新修复从库 0 昨天由于操作失误,在从库上执行一堆sql之后,导致主从同步错误,并且已 ...
- 企业架构研究总结(41)——企业架构与建模之ArchiMate的由来和详述(上)
终于完成了关于企业架构框架理论的总结,谢谢各位看官的支持,能挺过之前过于理论化的叙述而坚持到现在着实不易,笔者也自愧没有实践经验可以分享,希望日后有兴趣的看官能够不吝赐教.在本系列后面的也是最后一个大 ...
- 企业架构研究总结(39)——TOGAF架构能力框架之架构委员会和架构合规性
3. 架构委员会 正如前面所说,一个用来对架构治理策略的实现进行监督的跨组织的架构委员会是架构治理策略成功的主要要素之一.架构委员会应该能够代表所有主要干系人的需求,并且通常还需要对整个架构的审查及维 ...
- 企业架构研究总结(38)——TOGAF架构能力框架之架构能力建设和架构治理
为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能力框架(Architecture Capabil ...
- 企业架构研究总结(36)——TOGAF企业连续体和工具之企业连续体构成及架构划分
又回头看了之前文章的评论,本人也同样感慨这些文章的确像政治课本般的虚无缥缈,所以对费力看完却觉得无从下手的看官致以诚挚的歉意和理解,因为这个问题也同样困扰着笔者本人,而我能做的也只能是纸上谈兵.之前也 ...
- 企业架构研究总结(45)——企业架构与建模之使用ArchiMate进行分析(全系列完)
4. 使用ArchiMate进行分析 正如前面所说的那样,一个企业整体效率的提升有时并不是通过某一个领域内的优化就能达到的,而且这种忽视全局的做法往往还会造成不必要的浪费.由此可见,一个能够跨越各个领 ...
- 企业架构研究总结(44)——企业架构与建模之Archimate视图和视角
3. ArchiMate的视角与视图 创建.维护一个企业架构是一件非常复杂繁琐的事情,因为这项工作需要面对许多背景.利益各异的干系人,对他们所关注的问题进行解答,并能够在他们之间形成无障碍的沟通流.为 ...
- 企业架构研究总结(43)——企业架构与建模之ArchiMate详述(下)
2.7 关系模型元素 企业架构模型包括了各种概念元素以及他们之间的关系,这其中的概念元素已经在前面几节中进行了阐述,而这些概念元素之间的关系则是本节的叙述重点.虽然ArchiMate中具有种类繁多的概 ...
- 企业架构研究总结(42)——企业架构与建模之ArchiMate详述(中)
2.4 技术层模型元素 技术层模型元素包括了企业在信息基础设施方面(企业中基本的软硬件环境,包括物理设备.系统软件等为信息化提供基本支持的设施)的各种概念元素,以及他们之间的关系.与应用层模型元素相类 ...
随机推荐
- E. Present for Vitalik the Philatelist 反演+容斥
题意:给n个数\(a_i\),求选一个数x和一个集合S不重合,gcd(S)!=1,gcd(S,x)==1的方案数. 题解:\(ans=\sum_{i=2}^nf_ig_i\),\(f_i\)是数组中和 ...
- 第一个duilib程序 - 实现HelloWorld详解
duilib是一个windows下的皮肤库,用win32写的... 先看个效果图吧: 要使用duilib库,必须先把库导入,代码如下: View Row Code 1 #include "x ...
- Python高质量缩放切图,抗锯齿
最近刚接触Python,以迅雷不及掩耳盗铃之势(只是迫不及待)应用到工作中去了之前用 cmd+photoshop做批量图像处理(缩放切片),在执行效率(速度)上和灵活度上有很大限制,遂转战Python ...
- EL bug 之 javax.el.PropertyNotFoundException: Property 'Sub_Token' not found on type com.sunmo.stPhone.bean.User
javax.el.PropertyNotFoundException: Property 'Sub_Token' not found on type com.sunmo.stPhone.bean.Us ...
- 2019年6月份Github上最热门的开源项目排行出炉,一起来看看本月上榜的开源项目
6月份Github上最热门的开源项目排行出炉,一起来看看本月上榜的开源项目有哪些: 1. the-art-of-command-line https://github.com/jlevy/the-ar ...
- 转:Wireshark基本介绍和学习TCP三次握手
源地址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS ...
- JavaScript事件(随笔)
1. Javascript事件介绍 JavaScript中的事件和现实生活中的事件类似,现实生活中发生的一些事情,例如:交通事件,当这些事情发生时,我们需要提供处理方案: 在JavaScript中事件 ...
- Android 开发 Camera2开发_3_处理预览和拍照偏暗问题
通过调整曝光解决 参考:https://stackoverflow.com/questions/28429071/camera-preview-is-too-dark-in-low-light-and ...
- layui 表格点击图片放大
表格 ,cols: [[ //表头 {checkbox: true,fixed: true} ,{type: 'numbers', title: 'ID', sort: true,width:80} ...
- 官网下载eclipse
百度搜索eclipse,点击官网链接进入官网 进入官网点击Download Packages 根据自己需要选择对应的版本 选择对应的版本进入下图下载页面,然后点击下载即可 下载完成,解压zip包即可使 ...