-
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-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开发并有相关经验
-
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-IDE项目 *
2006-12-22 11:34:13