SpringSide 2.0 概述
1. 介绍
SpringSide
以Spring Framework
为核心,以Ruby On Rails的简约风格整合Java社区的众多开源项目,为大家开发Java企业应用提供一个方便起点。
它所整合的Full-Stack 的开源构件库,包括了WebService,JMS,工作流,安全,报表,规则引擎,搜索引擎,定时任务等企业应用特性,以构件式的开发架构,配合Ant脚本与SpringSide-IDE(Eclipse插件),作为一个一站式的快速Java开发框架。
同时,它的示例代码充分演示了开发团队与SpringSide社区
共同总结的,Java企业应用领域方方面面的Best Practice。
SpringSide由下面三部分组成:
- Core SpringSide核心代码。按照Spring Style,充分利用JDK5特性,编写必要的粘合、封装与便利代码。
- Examples 含新手入门公司培训专用的Helloworld示例 与 全面展示企业应用特性的Bookstore书店完整示例 (观看演示
)
- Tools 快速生成项目、加入构件与生成CRUD代码的Ant脚本与Eclipse Plugin。
与SpringSide类似的框架还有Appfuse
、JBoss Seam
、Able
、Grails
、Trails
与 Rife
,SpringSide存在的意义在于,它全由主流的Java框架以简约的方式组成, 丰富的企业应用经验总结, 还有全中文的参考文档与代码注释。
2. 架构
RoR 是一种态度,只要大家放弃J2EE无限分层,无限追求设计模式的思路,换上和RoR一样的简约态度,即使用最主流的Spring+Struts+Hibernate架构,配合JDK5一样可以极少的代码行数完成CRUD式的模块。
SpringSide当前版本推荐的基本架构:
- JDK5 与Spring2.0作为架构的基础。
- Entity POJO类由Hibernate Annotation注释ORM关系,因为POJO属性与数据库默认一一映射,所需的注释很少很少。
- Manager类采用No Dao、No Interface的紧凑模式,继承于强力的HibernateEntityDAO
基类,用泛型声明自己管理的Entity Class。
- Struts Action采用Pragmatic的新模式:DispatchAction 每个Controller 响应一组相关操作,LazyValidatorForm免去FormBean定义,同样采用了强力的StrutsEntityAction
基类。
- View层采用JSP2.0,并结合Prototype.js、Dojo 简化Javascript与Ajax 应用。
SpringSide也在积极尝试JPA+Struts2,领域驱动设计(DDD)的新模式。
同时,作为Java企业应用框架,SpringSide将深度结合了JBPM 工作流引擎、JBossRules规则引擎、Birt报表引擎,Lucene/Compass搜索引擎,Acegi安全与权限管理,XFire Web服务与ActiveMQ JMS与ESB项目组成的SOA架构的构件式架构,并在Bookstore示例中一一演示。
3. 重要资源
4. 开源构件完整列表
JDK5的annotation、泛型、可变参数与autoboxing,有了之后很难再放弃。
而且annotation的应用越来越多,如果SpringSide仍然固守JDK1.4,会受到越来越多的局限。
如果用户的应用服务器只支持JDK1.4,可使用retrotranslator的兼容方案 --详细文档
2. Spring 2
- J2EE Framework.
暂时缺乏强有力竞争者的Java EE Full-Stack Framework -- 详细文档
Hibernate 种种不足,但还是最好的,3.2下的annotation非常方便 -- 详细文档
iBatis则方便旧项目改造或中庸的时候 -- 详细文档
Struts 1.2的用户数始终是最多的 -- 详细文档
Struts 2来自webwork,应该是传统模式下最好的mvc framework。
5. JSP2.0
- View Template.
因为JSP比Veloctiy, Freemarker有好得多的IDE,如语法超级敏感,支持Jsp重构和debug的IntelliJ IDEA。
而且JSP2.0的EL可以在html中直接书写${book.name},比<c:out>的页面已简洁无数倍,几近于Velocity。
而且还有Extreme Table这样的现成JSP Taglib。--详细文档
与C++下的boost一样的半官方库,Collections,BeanUtils等等都应该归入JDK的Utils。
7. XFire
- Web Service.
新一代Web Service框架, 与Spring结合,导出POJO为Service,JSR181驱动,还有简化Binding上都做得不错,是一个充满Pragmatic味道的方案。
Apache的Axis2依然无法在服务端的易用性上和它比拟。 --详细文档
8. Acegi
- Security, RBAC ana ACL.
一个依靠Spring迅速走红的安全框架, 在安全方面的框子已经搭的挺全, 不过仍然有很多地方需要扩展才能使用。--详细文档
9. JBoss Rules 3
- Business Rule engine.
Drools变身为JBossRules后已经拥有了很好的规则语法,平民级的DSL语言映射法和基于Eclipse规则的编辑器,直追商业的ILog。--详细文档
10. JBpm
- Workflow engine.
在JBpm vs shark vs osworkflow中,我们选择JBpm。
11. ActiveMQ
- JMS Message Driven POJO.
ActiveMQ+Spring2.0/Jencks 是一个withdout Application Server,但效能一样不减的Message Drivern POJO的JMS组合方案。--详细文档
12. Quartz
- Enterprise job scheduler.
定时执行者的主要竞争者是IBM,BEA合作搞的CommonJ, 但CommonJ只在两家超贵的应用服务器的最新版上存在 --详细文档
13. Compass
- Search engine use Lucene .
与Spring、Hibernate的结合,快速实现基于Lucene的企业应用搜索。-- 详细文档
14. Prototype.js
- JavaScript and Ajax.
Javascript编程者的小军刀 -- 详细文档
同时选用了它的附庸Scriptaculous-- 详细文档
15. Dojo
- widgets
虽然速度奇慢,但是最完整,最受支持的html widgets项目。
它的竞争对手应该是收费的Crystal Report。JasperReport + IReport的组合根本没有与它对战的资格。
因为BIRT设计报表时类似Dreamweaver的方式,回想IReport中一个个元素来设定的做法简直是噩梦。
当然,它的巨大与功能的不全也是硬伤。
17. ExtremeTable
- JSP Table Tag Libraries.
主要PK对象是DisplayTag,因为ExtremeTable更易于定制样式和二次开发。 --详细文档
Selenium是SpringSide2强力推行的Web应用功能测试,集成测试的工具。 --详细文档
good
博大精深啊!努力学习吧!