关于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)
    为什么不继续用jsp,彻底的改代码不重启应用?因为舍不得Spring的JDBCTemplate/DataSource/Transcation这一系列功能。
    用@Service注册bean,就不用再写applicationContext.xml定义helloService bean了。
    继续用@Transcational 定义事务。
    Spring的SimpleJDBCTemplate其实也挺好用的,顺手的话,可以将输入参数/ResultSet 直接反射到DTO上。
    不顺手的话,用MapSqlParameterSource绑定DTO到输入参数,用ParameterizedRowMapper绑定ResultSet到DTO。

除了上面几点,其他地方也简化了,比如maven的功能退化到jar管理,连接池直接用commons-dbcp定义不依赖应用服务器等等...

Extreme比较适应那些上午要下午给的快速交付,或者某些不知道到底一年有多少个人点进去的角落。

如果你请到了只会写jsp和sql的极品,extremeweb也能让他明天开始干活,但代码依然可堪一观。



再看原来的SpringSide3.0,感觉至少还要改几个地方,才好意思叫3.0 Stable:

1.从JPA回退到Hibernate, JPA等了一年在国内都没啥市场,比hibernate又没啥进步。
2.Service+DAO层还是有点多余。
3.Struts2Action里的基类有点不伦不类,还是取消的好。
4.其他觉得臃肿的地方。

下次预发布估计是奥运来临了.



TAG: 开发日志

我来说两句

-5 -3 -1 - +1 +3 +5

Open Toolbar