------------------------------------------------------
l 企业级的解决方案当然要采用企业级技术:灵活开放的技术架构,性能,安全,稳定性等达到企业级应用的品质。本产品采用的Java企业版技术安全、强大、跨平台,久经考验、值得信赖,是最适合企业使用的技术平台
l 基于Spring + Hibernate的轻量级技术架构,灵活,易扩展,移植性好,不需要复杂昂贵的EJB容器
l 采用支持MVC 2,SOA的多层(n-tiers)系统架构(见系统架构设计图),强大、灵活、高效、易维护、可扩展
l 整合众多优秀、可信的开源框架,满足企业级应用所需的各种技术和要求,包括Sitemesh,JBoss Rules,Birt,Acegi security等等
l 本产品支持多种操作系统、数据库、应用服务器、浏览器;真正平台独立
l 支持多种表示层技术:JSP/Velocity/FreeMaker/JSF/XML,界面修改非常方便
l 页面设计遵守CSS2,W3C等规范,兼容主流浏览器如IE(及其变种)、Firefox、Safari等;基于DIV+CSS的页面设计
l 前端网上商店与后端管理系统完全分离,安全、可靠、稳定
l 强大的页面缓存、页面压缩技术可以保证系统性能
------------------------------------------------------
l Spring Framework 2.0,包括Spring MVC
l Spring是一个较新的轻量级开发框架,本身提供丰富的功能,并能够和现在很多受欢迎的开源框架、标准(例如Hibernate,Velocity,JSF,Quartz等等)方便地集成,大大简化了利用开源技术进行开发的难度,并可以提高开发效率和质量(有较多的文档和指引)。
l 主要的核心思想是使用POJO、Bean容器管理、AOP、Ioc、接口编程等。
l Spring是本产品使用的最关键的技术/框架,主要用到:事务管理、Bean管理、AOP、MVC、和Hibernate的集成、View层集成、报表集成、Quartz集成、Email等。
l Hibernate 3.2
l Hibernate是个流行的开源的O/R框架。可以透明地处理数据存储以及和Java对象的映射。Hibernate可以支持市场上绝大部分的数据库系统。
l 适用范围
l 使用Spring和Hibernate集成。
l 另外HQL是Hibernate里面使用的一种数据查询语言,可以支持所有Hibernate支持的数据库。所以在开发的时候主要使用HQL,避免使用某数据库厂商特定的SQL语法或者存储过程。
l 由于连接在映射里面一般被映射为Collection,并在JSF + Spring + Hibernate使用里面有一些问题(Hibernate里面的Lazy Loading和JSF的binding会有一些问题),所以考虑不支持把外键映射为集合,只是当作简单的字段来使用,然后程序员需要在BO层处理这些连接而且这样有个好处是运行的性能比较好。
l JSP 2.0,JSTL,EL 本系统缺省使用的视图层技术,用来生成HTML返回给浏览器。通过使用JSTL、EL,易读性和可维护性可以媲美Velocity等模版语言,而且有众多的开发工具支持。
l Servlet 2.4: 系统里面会少量使用Servlet。Servlet是和CGI类似的技术,而且JSP运行之前是先编译为Servlet才运行的。主要在不需要生成HTML但是需要提供其他Web服务的时候使用,例如输出图片。还可能使用的其他Servlet相关的技术有Filter、Listener等。
l Sitemesh 2.3: 页面排版和装饰框架。负责页面的总体排版。
l Acegi security 1.0:基于角色的权限控制安全框架。
l AJAX (主要用下面的DWR,scriptaculous,以及Prototype) : 页面部分更新、以及实现友好的用户交互。
l DWR 2.0: 一个AJAX服务器端引擎。
l Prototype: 一个流行的JavaScript框架。
l JBoss Rule: 强大的规则引擎。
l BIRT (Reporting): 强大的报表设计、生成引擎。
l Lucene Lucence:是一个搜索引擎,主要用于网站文章、产品描述的全文搜索等。
l OsCache: 缓存框架。在本产品主要负责处理页面缓存。
l EhCache :缓存框架。在本产品主要负责处理数据缓存,包括Hibernate的二级缓存。
l Quartz: 计划任务器,负责在后台运行一些任务。
l Urlrewrite: 重写URL。
l Commons: (主要包括DBCP,Pool,Validator等等)使用Commons Validator进行输入验证等。
l Displaytag: 表格输出、排版等。
l FCKeditor 2.3: 可视化的在线HTML编辑器。
l ANT: 开发时、安装时用到的一些常用的任务。
l JUnit,DbUnit: 单元测试。
l LOG4J: 文本的系统日子输出。
l Velocity: 一个常用的页面模版技术。可以作为视图层的另一种选择。在本产品缺省的配置里面主要用来作为邮件的页面模版。
l dom4j:SAX XML解释器。
l Xerces:XML解释器。