petstore搞得实在的太复杂了,但是它很好的实现了整个框架的重用。

解决方案 »

  1.   

    ejbaction:属于对访问的控制;
    session facade:是提供一个外观。这样可以更好的实现一种松耦合。
      

  2.   

    我们封闭开发了两个月,项目使用的架构就是基于J2EE的PetStore的。而由始至终,都是由我来负责架构的分析就与重构。
    对于楼主的问题,我来解释一下。
    1.J2EE的开发分为两个层次:web层与EJB层。
    一般的,web层处理显示逻辑,简单的输入过滤,处理。
    EJB层处理核心业务。
    2..do请求与HTMLAction属于web层动作。
    EJBAction属于EJB层动作。就是在EJB容器内执行。3.web层与ejb层的连接控制是由WebController与EJBController联合构成。
    4.SessionFacade模式是EJB层内的业务逻辑对外接口。这个“外”,此处就是指web层了。
    5.SessionFacade模式简化了接口,提高了效率,更重要的,利用了EJB的事务管理。
    6...还有很多其他,但,理解了上面几点,PetStore的大框架就差不多了。:)希望对大家有用。
      

  3.   

    谢谢,基本上是明白了。
    请问 feiyuegaoshan:
    我现在也在做一个项目的设计,现在也是在考虑整体的架构问题,web层控制的思想和实现我现在相对比较清楚,然后petstore对EJB层也做了类似的控制处理。
    但是现在我有个问题如果按照petstore的做法,那么那么多作为做WebController与EJBController用的类你们是自己写,还是把petstore里的搬过来用?
    唉,现在我们时间太紧了,没时间研究petstore代码,只看了一些别人对petstore架构的分析,也不清楚哪些类是用来做控制的。
      

  4.   

    当然是能搬就搬了,比方:ServiceLocator全搬
                           那些Controller和StateMachine改改搬
    又不用教版税:)我们的系统也在架构阶段,只是不赶:) 这段日子也看了一下petstore,struts。都没看太懂,感觉都很好,petstore的把客户请求转化为事件,再用StateMachine来处理很棒,而struts用映射机制来处理也很好。可我们的系统希望客户端也能用别的如PB什么的,那是不是要把很多Web层的Controller的功能移到EJB层呀,疑惑中???
      

  5.   

    从去年起我就在做一个J2EE的项目,Framework是我们自己设计的,类似于petstore,但是我们后来发现petstore也有许多的不足,比如因为使用了实体bean,所以在性能上存在问题,我们后来就自己开发了一个数据库访问开发包,类似于JDO的东西,这样性能和编码速度都上去了,还有就是没有使用JSP,而是使用了XMLC,这样的话,开发的时候一面将详细设计书交给会HTML的美工人员,只用HTML去画画面,一面详细设计书交给程序员,编写业务逻辑,然后借助XMLC将两个部分合并就OK了.
      

  6.   

    perstore 也就是struts+ejb
    如果ejb不好用就struts+JDO 
    jdo不成熟就struts+hibernate.
    或者就干脆struts + JDBC 
      

  7.   

    我现在架构设计基本算做完了,web层就基于struts开发。业务层采用了EJB,但没有采用petstore那种控制方式,entity bean也用了,但只用来修改数据,所有的查询都有session bean来完成,所以性能我想应该还是能保证的。
      

  8.   

    To: loveolala(一剑霜寒) 
        我建议你在WEB层和EJB层之间加入点FRAMEWORK,最简单的方法,就是从WEB层访问EJB层的时候,
    通过一个共同的代理机制来进行控制,这样开发起来比较方便,也对真正的编码程序员要求不高,根据我的J2EE开发经验,你不要对其他的程序员要求太高,能做的你先做好,尽可能简单的交给编码人员,不然到最后开发速度赶不上.