-
SpringSide 3.0.3 Stable版,SSH2也就这样了. *
2008-10-07 09:45:33
估计未来半年一年内,国内的Java主流都还会是这种Spring + Hibernate +Struts2,但约定大于配置的风格。
3.0.3后,Mini-Example算是告一段落,SSH2的惯用法也就那样了。个人的理解总有局限,接下来就要靠大家的反馈推动。
这次的主要改动有:- 使用Spring 2.5的IOC annotation 实现Service层/Dao层零配置。
- 使用Spring 2.5的新TestContext Framework。
- Hibernate Ehcache Lv2 缓存:1. 配置优化 2.集群环境使用。
- Struts2.1版zero-config 与 code-behind的合并,实现零配置。
而主要精力,将开始论坛示例,会像2.0版的书店示例那样综合展示大量开源项目,但它是完整的,且支持可伸缩与高可靠性的集群及Web2.0的特征。
变更记录: http://wiki.springside.org.cn/display/SpringSide3/ChangeLog
下载地地:http://www.springside.org.cn/download.php
讨论区:http://forum.springside.org.cn/
欢迎大家试用反馈,共同打造我们的SSH2较佳实践。 -
SpringSide 3.0.2 ,一个相对满意的版本 *
2008-09-25 02:42:49
有一年半没发新版的SpringSide, 在3.0的发布时有点急了.这次的版本, 才是一个相对让自己满意的版本.
原本大家投诉的文档粗略,没有傻瓜式快速开始版这次都作了改进,另有颇多代码上的更新,详见3.0.2版完整修改记录.
接下来还会继续在mini-examples上打滚一段时间,毕竟这是团队每日开发的基础,然后才会开始那个Web2.0的,高可靠高伸缩性的论坛示例.
下载地址:http://www.springside.org.cn/download.php
-
SpringSide 3.0.1接踵而来 *
2008-08-05 15:48:54
人家说看一个社区活不活跃,就看它的X.0.0发布之后,X.0.1什么时候出来了。
主要修正的地方:- IDE项目文件 从D版MyEclipse 换成 Eclipse 3.4 for Java EE developers,虽然Eclipse 3.4毫无悬念的要粗糙一截。
- 全maven的编译部署脚本,配上全界面化的Hudson持续集成服务器,感觉很不错。
- 为了某些打死不用maven的兄弟,增加了一个附带所有jar的下载版本 SpringSide3.0.1 withdout maven,但就需要大家自己完成后面的配置了。
- Acegi 2.0改到一种比较合理的模式:
分用户->角色->授权三级。
前两者保存在数据库中,由用户管理;
授权则由程序员规划,硬编码在jsp代码(taglib),业务方法(annoatation),URL配置文件(ApplicationContext.xml)中。 - Struts2CRUDAction定义了更多标准操作,HibernateSimpleDao改善了分页部分代码。
3.0.2的开发计划见 Todolist , 同时也会展开完整论坛示例的开发,欢迎大家继续讨论SpringSide接下来的选型、特性、方向.....
- IDE项目文件 从D版MyEclipse 换成 Eclipse 3.4 for Java EE developers,虽然Eclipse 3.4毫无悬念的要粗糙一截。
-
SpringSide 3.0 低调发布 *
2008-07-30 00:28:26
怀胎十八个月的SpringSide 3.0 终于低调的发布了。
这个版本里的SpringSide,终于放弃梦想,不再奢望做一个框架,或者一个像RoR/Gails那样极简的、创新的封装,而是对如何用不轻也不重的主流选型、编程实践来开发JavaEE企业应用进行老老实实的总结。
如果说Sun 的代码规范规定了大家在代码中如何命名变量,怎么编写注释的话,SpringSide就是对JavaEE企业应用开发的建议。
当然,SpringSide 3.0 还同步了这一年半里Java社区的技术升级:JAX-WS 2.0/CXF , Struts2, Spring 2.5, Acegi 2.0 ... 也全面引入了Maven作为项目管理与新项目生成的工具。
在第一个版本中,只发布了3个典型场景的示例:- 迷你后台Web服务(mini-service) 场景: Spring + Hibernate + JAX-WS2 (CXF) 的组合。
- 迷你CRUD管理界面(mini-web)场景:Spring + Hibernate + Struts 2 + Acegi Security 2的组合。
- 超轻量级网站前台(extreme-web)场景:Jsp + Spring Jdbc 无配置文件的超轻量组合,专扫极速网站Demo,墙角小应用之类的工作。
下载地址:http://www.springside.org.cn/download.php
文档地址:http://wiki.springside.org.cn/display/SpringSide3
-
关于3.0跳票与extreme-web示例
2008-07-24 22:36:01
一回头又一个月,日子过得太快了,快到你想哭。
这个月去了趟上海,想着回来无论如何也将3.0版给发了吧。虽然亲爱的sourceforge.net被GFW了。
但接下来一次贴近团队的快速开发,又感到SpringSide3.0还是太重了。
对于演示原型,上午要下午给的快速交付,或者某些不知道到底一年有多少个人点进去的网站角落,或者极少数管理人员才用到的管理功能,在恨不能php,ror的时候,你会想起jsp+jdbc的温暖。又或者你请到了只会写jsp和sql的极品,又想让他明天开始干活.....
传统的jsp+jdbc写法不堪回首,所以另做了这个extreme-web风格示例
, 在jsp and jdbc and no config file的同时,仍然是个可堪一观的MVC,仍然基于亲爱的Spring.View层:一个jsp(见webapp/user/user.jsp)
Web应用里,单纯的内容展示型场景占绝大多数。
我们也单纯的在jsp的开始代码调用Model层的Service Pojo查出所需内容。
然后可以继续忍受压力,直接在页面中嵌入显示代码。也可以将结果放入贯通两界的pageContext里,换用Jsp2.0 EL和JSTL taglib来作展示。
一页到尾,不要再扯什么Struts2 Action,什么struts.xml。Control层:还是一个jsp(见webapp/user/userAction.jsp)
少量的用户提交内容的场景,就会来到这个代替Struts2 Action的jsp,由它来调用Model层的Service Bean,然后又redirect/forward回View层的jsp。
如果顺手,可以用spring的DataBinder 将request参数绑定到DTO。否则就N多request.getParameter("foo")手工组合。Model层:一个使用Spring JDBC的POJO(见src/.../UserService.java)
除了上面几点,其他地方也简化了,比如maven的功能退化到jar管理,连接池直接用commons-dbcp定义不依赖应用服务器等等...
为什么不继续用jsp,彻底的改代码不重启应用?因为舍不得Spring的JDBCTemplate/DataSource/Transcation这一系列功能。
用@Service注册bean,就不用再写applicationContext.xml定义helloService bean了。
继续用@Transcational 定义事务。
Spring的SimpleJDBCTemplate其实也挺好用的,顺手的话,可以将输入参数/ResultSet 直接反射到DTO上。
不顺手的话,用MapSqlParameterSource绑定DTO到输入参数,用ParameterizedRowMapper绑定ResultSet到DTO。Extreme比较适应那些上午要下午给的快速交付,或者某些不知道到底一年有多少个人点进去的角落。
如果你请到了只会写jsp和sql的极品,extremeweb也能让他明天开始干活,但代码依然可堪一观。
再看原来的SpringSide3.0,感觉至少还要改几个地方,才好意思叫3.0 Stable:
1.从JPA回退到Hibernate, JPA等了一年在国内都没啥市场,比hibernate又没啥进步。
2.Service+DAO层还是有点多余。
3.Struts2Action里的基类有点不伦不类,还是取消的好。
4.其他觉得臃肿的地方。
下次预发布估计是奥运来临了.
-
打扫,准备发布3.0
2008-06-14 23:41:34
主站终于ICP注册完毕,继续写开发周记。
预计下周可以发布一个3.0了吧。还有很多来不及做的东西,统统划到了下一个版本里。(见wiki中的todolist)
问:既然还有这么多来不及做的东西,这个版本为什么要叫3.0呢,叫3.0M1,3.0 RC1不好吗?
开发界不比互联网,Web2.0永远Beta的精神是不适用的,我自己就几乎不看不用不是Stable的东西。所以为了上座率,这个版本姑且叫3.0吧,东西虽然少点,但至少是正确可靠的。
这周的主要是wiki上文档的编写和一些细碎修改,在SVN的log里很清楚,着重增强了代码可读性。可读性一是靠注释,二就是靠爱国卫生运动,将项目始终保持在清爽简洁的状态。
在SpringSide 2.0的末期,整个项目就枝枝蔓蔓颇有几分失控。另外,简洁也不等于代码少,有时候用诡异的语言诡异的语法,很少的代码做很多的事情,可读性反而很低。有些代码为了可读性,在不牺牲性能的情况下宁愿多写几行。
除bugfix,演示门面改善和爱国卫生运动,注释运动外,一些比较明显的修改:
- Derby数据库脱离对MyEclipse的依赖,至此整个开发环境已经基本不依赖于Myeclipse。
- 统一使用Strust2的taglib,不使用JSTL,避免同时使用时的混乱。
- 整理cleanup 和 formatter 规则
- acegi的配置定义修改,不过滤css与图片
- springside-core的pom.xml中,依赖设为optional,因为依赖springside-core的项目,不一定需要springside-core的全部功能,也就不需要连环依赖所有springside-core依赖的jar.
-
08年第二周:又见struts2
2008-01-15 09:47:33
这周又把MVC转成Struts2了。S1到S3,Spring MVC->Struts->Struts2三个action-base的mvc framework,只怪Java的MVC Framework实在选择太多。但愿这是最后一个了,本来action-base就是件很简单的事情而已...
另外,温少又给SS3挑了些刺,改完后,3.0M1离发布不远了。
-
勤有功戲无益- 08年第一周的更新日志 *
2008-01-06 23:54:00
1.综合:
- 使用log4j作者新作slf4j/logback 代替 commons-logging/log4j,不再需要为了一点点性能而到处是if(logger.isDebugabble()).....
- 使用Spring2.5标注:
使用@Required,保证某些使用autowired的关键属性必须注入.
使用@PostContrust 代替原来的initBean接口afterPropertiySet()函数,见WebServiceSupport.java.
思考再三,还是没有使用EJB3的@Resource(name="userManager") 这种注入配置方式,太耦合了 - 修改Spring的ApplicationContext文件:
Schema改到Spring 2.5.
分离applicationContext-production.xml,对应applicationContext-test.xml存放生产环境的配置变量.
合并applicationContext-service和applicationContext-dao,但可按模块划分此文件.
2. mini-service:
- 修改DTO的JAXB2.0定义,取消accessType定义,使用默认的PUBLIC_MEMBER.
- 修正之前FaultException在WSDL中没有正确反射的bug.
- 修改WebServiceSupport类加强dozer的初始化管理.
- 修正项目生成模板service-archtype积累下来的问题.
3. mini-web:
- 新增最初级的acegi使用示例
根据acegi1.0.6示例代码,以URL作为权限判断依据,角色与URL的对应关系由开发人员在配置文件中预设,用户可在管理界面设定用户的角色。
这种使用对旧系统代码的影响极小,一个service.security.UserDetailServiceImpl类,一个login.jsp,并修改UserManager类的update/delete方法使之刷新UserDetail缓存即可。
4.其他:
- SpringSide主站与3.0 Wiki的整理。
- 加大XML文件宽度到120字符,重新格式化。
- rename: si(系统交互)层->ws(Web Service)层,UserService->UserManager。
5. 下周工作计划:
- 受到InfoQ上那本Startging Struts2诱惑,mini-web打算换成Struts2
- ExtJS的widgets
- MyEclipse总是受人诟病,但是用WTP2.0大家就没法QuickStart了,头痛中。
-
SpringSide 3.0启动
2007-11-30 13:16:40
沉默的半年,如迷的呼吸,SpringSide3.0 重启完成,正式上路....
-
SpringSide 2.0 RC1 Winter Edition发布 *
2007-01-23 15:32:23
1. 概述
传说中的圣诞版快要变成新春版的时候,SpringSide的Winter Edition来了。
这个版本主要增加了SS的系统友好度,开始SpringSide-IDE的项目,Acegi、JBossRules、Compass也重新铺开。2.New Feature
2.1 代码质量与用户友好度升级
- 建立了SpringSide代码规范,极端时使用IDEA-Eclipse-Checkstyle-PMD-Findbugs 五层保湿,平时使用Eclipse+Checkstyle 简单控制代码质量。
- SpringSide-Core 收集大家的反馈意见后,再度重构。
- 项目结构进行了简化,丢弃Maven的深闺式布局。
- 增加新建项目时的友好度,Ant 脚本与Library不再必须依赖SpringSide目录。
2.2 Springside-IDE
蒋新主理的SpringSide-IDE,可以新建一个SpringSide结构的Java项目,自完成一切必要的设置。
用户可以在其上使用MyEclipse的右键菜单Add Web Project Abillity 升级为MyEclipse项目。
这是SpringSide-IDE迈出的第一步。
2.3 Acegi Securitycac提供Acegi SS1.0M3版的化简版,更加清晰明了,在数据库中存放用户角色资源三表,仅提供URL过滤安全保护。
2.4 JBossRules RuleEngine白衣参考JBoss Seam的做法,升级了对JBossRules的封装,并在书店示例进行更好的用法演示。
2.5 Compass SearchEngineScheweigen重做的 Compass示例
- 脱离对Spring MVC的依赖,仿造其Spring MVC Controller的写法提供对Compass的封装,演示在Struts下的使用。
- 加入Highlighter的演示。
- 增加应用启动时重建索引的。
2.6 ActiveMQ Demo Upgrade
cctvx1 升级了ActiveMQ的Demo:
- 增加持久化到数据库的演示。
- 增加使用Jenck JCA Container代替Spring的Container的演示。
2.7 DBUnit
Anders小明增加了使用DBUnit的Selenium基类,使用DBUnit自动保持集成测试前后的数据库状态。
-
送出第一批纪念品--SpringSide Logo的杯子 *
2006-12-30 14:54:26
Cac 终于印好了第一批SpringSide纪念品:
由cac负责将杯子邮寄给下面的得主:
- SpringSide 1.0开发团队 : http://www.springside.org.cn/team10.php
- SpringSide 2.0 开发团队 : http://www.springside.org.cn/team.php
- SpringSide的服务器赞助者(Scud飞云小侠,曹晓刚)
- 春节前达到300分的积极社区会员
- 社区版主(Zidoing,Bekie)
希望获得SpringSide第一批纪念品的会员(或许,Maybe以后会很有纪念价值),赶紧在春节前将积分灌到300呀!!!!
原本要印T恤的,错过了入货的最好时间--夏季清仓大甩卖的时候,大家希望下次送什么,回帖说一下阿。 -
蒋新加入SpringSide团队 *
2006-12-22 14:48:20
岁末之际,SpringSide团队又有高手加入,负责SpringSide-IDE开发。
个人简介:蒋新,毕业于清华大学软件学院,主要从事eclipse插件开发,对开源软件十分感兴趣,注重软件的实用,也是linux系统的爱好者。目前在北京工作。(mail: xinjiang1979@gmail.com) -
启动SpringSide-IDE项目 *
2006-12-22 11:34:13
蒋新正式加盟SpringSide团队,主持SpringSide-IDE的开发。
SpringSide-IDE 的初期规划:
一是,生成SpringSide架构的项目。
生成的项目整合了用户所选构件的jar 和配置文件,是一个已配置好一切的Java项目,用户如果习惯用MyEclipse,可以用它的Add Web Project Capabilities 功能转为MyEclipse Web项目。
二是,随时添加SpringSide构件。
三是,CRUD的Java源码、测试代码、配置文件的生成
初期基于Hibernate Tools进行扩展,使用数据库反向或者Annotation POJO作为元数据,使用FreeMarker作为代码生成的模板。
远期规划:
一是,Java框架现在最烦的就是配置管理,SpringSide打算避开MyEclipse已经覆盖的功能,但模仿它的做法,对SpringSide中各开源构件提供XML配置文件,Annotation管理与代码生成。
同时可将这些功能反馈给该开源项目。
二是,打造一个Eclipse WTP+Hibernate Tools+ Spring IDE+ SpringSide-IDE的免费JavaEE开发工具。
欢迎加入:
欢迎大家在springside论坛的springside办公室板块跟贴报名加入,要求是熟悉Eclipse Plugin开发并有相关经验
-
Spring2.0,Struts2.0,SpringSide 2.0--SpringSide 2.0M1 发布
2006-11-28 00:19:23
SpringSide以Spring Framework
为核心,为大家提供了一个Pragmatic的企业应用KickStart 与Full-Stack 的开源构件库。它以RoR式的简约风格,将Java社区众多优秀轻量级开源项目整军为一个黏合的框架,以构件式的开发架构,配合Ant与Eclipse plugin的生成工具,作为大家开发Java企业应用的方便起点。
同时,它的示例代码充分演示了开发团队与SpringSide社区
共同总结的,Java企业应用领域方方面面的Best Practice。1. 升级概述
Spring发了2.0,Struts发了2.0,SS也来凑凑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日历控件,scrīptaculous--Effective效果。2.11 全面Selenium 集成测试
在原有UnitTest的基础上,增加Selenium持续测试,每天持续运行保证提交代码的正确。
3. 感谢名单
特别感谢曹晓刚,为SpringSide提供了强力的Host主机安装了新的社区,主站、日志和Wiki。
继续感谢飞云小侠,为SpringSide提供Subversion与Jira的Host服务。
完整Sponsors列表见http://www.springside.org.cn/sponsors.php。然后感谢下列代码提交者: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
-
IDEA Free License!!!!! *
2006-11-10 09:01:02
终于申请到了开发组最爱的Intellij IDEA的Free License,而且还是Team Common的,开发团队的同志都可以用哦。
大家谁想要的,就踊跃加入SpringSide开发团队吧:)
-
SpringSide 2.0 M1-alpha3 发布--全民CodeReview时代开始 *
2006-11-04 00:19:38
SpringSide2.0 M1 alpha3 已经放出,作为M1的最后一个alpha版,基本功能已完成,就等着补齐文档和大家的疯狂Review了。
CodeReview期间,派分标准提高3倍(每次至少3分),欢迎大家一起Review,合力打造一个适合自己项目习惯的SpringSide。
下载地址: http://www.springside.org.cn/download.php
更新说明:http://wiki.springside.org.cn/display/springside/ReleaseNotes2.0M1+Release+Notes
但愿大家忘记了,今天本来应该发布的是2.0M1....逃啊......
另外,放出后的代码还在不断改进中,大家可以用SVN 下载最新版:http://svn.javascud.org/svn/springside/springside2/trunk -
申请到了JIRA和Confluence Wiki的License *
2006-11-02 14:19:21
在cac无敌的E文申请信下,atlassian.com 今天 给springside.org.cn 批准了 JIRA 和Confluence Wiki 的Open Source Licenses:)
-
SpringSide 3.0.3 Stable版,SSH2也就这样了. *
2008-10-07 09:45:33
-
SpringSide 3.0.2 ,一个相对满意的版本 *
2008-09-25 02:42:49
-
SpringSide 3.0.1接踵而来 *
2008-08-05 15:48:54
-
SpringSide 3.0 低调发布 *
2008-07-30 00:28:26
-
关于3.0跳票与extreme-web示例
2008-07-24 22:36:01
-
打扫,准备发布3.0
2008-06-14 23:41:34
-
08年第二周:又见struts2
2008-01-15 09:47:33
-
勤有功戲无益- 08年第一周的更新日志 *
2008-01-06 23:54:00
-
SpringSide 3.0启动
2007-11-30 13:16:40
-
SpringSide 2.0 RC1 Winter Edition发布 *
2007-01-23 15:32:23
-
送出第一批纪念品--SpringSide Logo的杯子 *
2006-12-30 14:54:26
-
蒋新加入SpringSide团队 *
2006-12-22 14:48:20
-
启动SpringSide-IDE项目 *
2006-12-22 11:34:13
-
Spring2.0,Struts2.0,SpringSide 2.0--SpringSide 2.0M1 发布
2006-11-28 00:19:23
-
IDEA Free License!!!!! *
2006-11-10 09:01:02
-
SpringSide 2.0 M1-alpha3 发布--全民CodeReview时代开始 *
2006-11-04 00:19:38
-
申请到了JIRA和Confluence Wiki的License *
2006-11-02 14:19:21