SpringSide以Spring Framework为核心,为大家提供了一个Pragmatic的企业应用KickStart 与Full-Stack 的开源构件库。
它以RoR式的简约风格,将Java社区众多优秀轻量级开源项目整军为一个黏合的框架,以构件式的开发架构,配合Ant与Eclipse plugin的生成工具,作为大家开发Java企业应用的方便起点。
同时,它的示例代码充分演示了开发团队与SpringSide社区共同总结的,Java企业应用领域方方面面的Best Practice。
1. 升级概述
这是个2.0的时代。下载地址:http://www.springside.org.cn/download.php
SpringSide 2.0改用了Pragmatic版的Struts作为MVC主打框架,重写了所有的代码,增加了新项目生成的命令和构件化的开源栈,还增加了方便新手入门的Helloworld示例。
随着Java开源社区的日日进步,SpringSide升级了包括Spring 2.0的AOP事务配置, Hibernate3.2的annotation模式,XFire1.2.2的最新简约配置及JSR181模式,以及ActiveMQ4.1 的Message Driven POJO新模式。
另外,还增加了iBatis数据访问模式和一系列Ajax Widgets,并全面推行了Selenium集成测试。
在2.0版的漫长建设过程中,江南白衣、anders小明、cac、cctvx1、david.turing、totodo、差沙、彭清、徐昊组成了9人核心开发团队。
另外的收获有在 满江红建立的新SpringSide社区 和 Confluence Wiki在线文档,老外的IDEA、Jira与Confluence Wiki的开源项目免费授权。
注意,因为代码全部重写,SpringSide1.0M3中已有的一些功能要在下个版本中才能重写完毕,包括Acegi 安全引擎, JBoss Rules规则引擎,JBPM 工作流引擎,BIRT报表,Lucene/Compass 搜索引擎和Dojo等,请大家耐心等待。
2. 升级项详细说明
2.1 项目快速生成与构件化的开源栈
某个上午费了很长时间才弄好一个Demo程序的框框是SpringSide 2.0的动力。
cctvx1建立了SpringSide的首个Eclipse插件,一个快速生成项目框框的Ant脚本和Eclipse plugin,你只要输入项目的名称、路径和需要安装的构件,就能马上拥有一个完全可运行的项目骨架。
2.2 Struts归来
鉴于Struts在公司内压倒性的用户数,为了使项目实用于最多的程序员,从Spring MVC改为Pragmatic版的Struts。
当然,这个Struts Pragmatic得与spring mvc无异,和旧式struts的用法不会一样。提供了一个CRUDAction基类封装演示,让子类只要声明一下entity类型就拥有CRUD的方法。
2.3 为质量重写所有代码
SS2.0的标准是,宁愿缺失功能,也不提供有问题的代码。新代码都经过了质量工具的检查和相当的测试用例。
anders小明在core里演示了用EasyMock测试框架类的做法。
2.4 增加Helloworld入门示例
原有的Bookstore示例对新手太不友好,所以新增了一个Spring+Struts+Hiberante的标准用户管理界面用于教学用途。
2.5 Hibernate 3.2GA annotation-接近RoR的代码量
彭清和徐昊在 Hibernate使用Annotation替代了 hbm映射配置文件。
因为annotation有着和RoR一样有着默认免配置的特质,配置量大为减少。加上JDK5泛型和Hibernate强基类,数据访问层的CRUD代码量已经很接近RoR。
2.6 增加iBatis
因为iBatis很适合一些项目,cctvx1和cac对iBatis 增加了springside-style的封装和Helloworld示例演示。
2.7 升级Spring 2.0
原来的事务管理使用的baseTranscationManager 定义方式对AOP的灵活运用有较大限制,Spring 2.0换为AspectJ定义,为AOP应用提供了更好的空间。
2.8 更新更简约的XFire 与JSR181 例子
XFire不断发展,而它自己的Example和网上的例子都缺乏及时更新。其实最新版的XFire已经完全摆脱Spring MVC来实现与Spring的集成,所需的配置代码更少了。
另外,david.turing提供了XFire JSR181,一个以annotation代替XML 配置Web Service的模式。
2.9 升级ActiveMQ4.1
cctvx1使用Spring 2.0 schema的新JMS配置文件等新一代完全Message Driven POJO的JMS使用方式。
2.10 增加的Ajax Widgets
totodo和 差沙加入了Ajax Upload上传进度条,JSCalendar日历控件,Scriptaculous--Effective效果。
2.11 全面Selenium 集成测试
在原有UnitTest的基础上,增加Selenium持续测试,每天持续运行保证提交代码的正确。
3. 感谢名单
特别感谢曹晓刚,为SpringSide提供了强力的Host主机安装了新的社区,主站、日志和Wiki。
然后感谢下列代码提交者:xmx0632,zhenggc,无声的海浪
感谢下列社区积极份子: guangnian0412,酸酸菜,beike,zidong,loveflying ,lsqlister,lovefly_zero,ivan,斧子,mark_dingyuan,h819,lanluquan,leondu,uu_snow,caryl,ttitfly,地主,hgq0011,anders,chengshwu,mingissam,6fish,javary,ritchie