日历

« 2008-08-28  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

最新来客

统计信息

  • 访问量: 39484
  • 日志数: 16
  • 建立时间: 2006-11-05
  • 更新时间: 2008-08-05

RSS订阅

我的最新日志

  • SpringSide 3.0.1接踵而来

    2008-8-05

       人家说看一个社区活不活跃,就看它的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接下来的选型、特性、方向.....
  • SpringSide 3.0 低调发布

    2008-7-30

        怀胎十八个月的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,墙角小应用之类的工作。
        而spring-core则如自己所愿非常的小,因为SpringSide不提倡把什么都再封装一遍。

        下载地址:http://www.springside.org.cn/download.php
        文档地址:http://wiki.springside.org.cn/display/SpringSide3
  • 关于3.0跳票与extreme-web示例

    2008-7-24

    一回头又一个月,日子过得太快了,快到你想哭。

    这个月去了趟上海,想着回来无论如何也将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.其他觉得臃肿的地方。

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


  • 打扫,准备发布3.0

    2008-6-14

    主站终于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-1-15

        这周又把MVC转成Struts2了。S1到S3,Spring MVC->Struts->Struts2三个action-base的mvc framework,只怪Java的MVC Framework实在选择太多。但愿这是最后一个了,本来action-base就是件很简单的事情而已...

        另外,温少又给SS3挑了些刺,改完后,3.0M1离发布不远了。

     

  • 勤有功戲无益- 08年第一周的更新日志

    2008-1-06

    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

    沉默的半年,如迷的呼吸,SpringSide3.0 重启完成,正式上路....

    SpringSide 3.0 主页

  • SpringSide 2.0 RC1 Winter Edition发布

    2007-1-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 Security

              cac提供Acegi SS1.0M3版的化简版,更加清晰明了,在数据库中存放用户角色资源三表,仅提供URL过滤安全保护。


      2.4 JBossRules RuleEngine

             白衣参考JBoss Seam的做法,升级了对JBossRules的封装,并在书店示例进行更好的用法演示。


      2.5 Compass SearchEngine

             Scheweigen重做的 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自动保持集成测试前后的数据库状态。

        1. 送出第一批纪念品--SpringSide Logo的杯子

          2006-12-30

          Cac 终于印好了第一批SpringSide纪念品:



             
                由cac负责将杯子邮寄给下面的得主:

                     请各位将邮寄地址发送到cac的邮箱: johnsonchen916@gmail.com
                     希望获得SpringSide第一批纪念品的会员(或许,Maybe以后会很有纪念价值),赶紧在春节前将积分灌到300呀!!!!
                    
                     原本要印T恤的,错过了入货的最好时间--夏季清仓大甩卖的时候,大家希望下次送什么,回帖说一下阿。
          1. 蒋新加入SpringSide团队

            2006-12-22

               岁末之际,SpringSide团队又有高手加入,负责SpringSide-IDE开发。

              
               个人简介:蒋新,毕业于清华大学软件学院,主要从事eclipse插件开发,对开源软件十分感兴趣,注重软件的实用,也是linux系统的爱好者。目前在北京工作。(mail: xinjiang1979@gmail.com)
          Open Toolbar