浏览 2208 次
锁定老帖子 主题:工作总结 – remote control
精华帖 (0) :: 良好帖 (0) :: 新手帖 (12) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-30
工作周期:2008/04/05 – 2008/05/30 工作流程:文档开发,数据库开发,后台程序开发,前台页面设计,前台页面开发 编程工具:mysql,Spring, Hibernate, JSF/Rich Faces 经验与教训: 文档开发阶段:由于对UML图的不熟悉,在绘制Use case diagram, Activity diagram, Component diagram, Deployment diagram 时均出现了一定问题,用了大概2周时间才完成, 以后需要加强这方面的研究。 数据库开发:DB schema 由Manager设计,只负责录入数据库。在和hibernate结合中,pk的生成方式为native,所以需要在mysql中将pk设为auto increment。此外还需要注意index的设 置,需要考虑到效率问题,对于非重复性字段,需将index设为unique index。 后台程序开发: 1. 使用hibernate时,遇到了经典的lazy initialization 问题。解决方案:没有使用open session in view方法,而是使用Spring在service层进行transaction的管理,当在service方法中需要使用到lazy load的属性时,使用Hibernate.initialization() load出来。在对DAO层测试时,扩展TestCase, 使用BaseCase工具类。 2. JSF与Spring的结合,由于J2EE5已经包含JSF1.2,所以不需要引入额外的包,否则会引起冲突。如果使用JSF1.1,一般需要添加jsf-spring工具包。 a. web.xml:用于获得WebApplicationContext <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> b.Faces-config.xml: <application> <variable-resolver> org.springframework.web.jsf.DelegatingVariableResolver </variable-resolver> </application> c. 在managed-bean中注入 3. 因为系统的服务器端使用分层的结构,所以程序之间的通信需要用到RPC方法。Spring目前支持的RPC包括RMI,Burlap/Hessian,Http Invoker和SOAP。方案选择为SOAP,基于XML的网际传输,使用第三方工具Xfire支持。因为用了JAVA5泛型的特性,所以使用起来很方便,不需额外编写aegis文件。在传输object时,对于想lazy load的属性,使用annotation @IgnorProperty声明即可。不过在传输Collection时,这种方法似乎有问题,会抛出session close异常。 配置方法:在WEB-INF下加入XFireServlet-servlet.xml文件,配置SimpleUrlHandlerMapping,并将需要远程访问的服务用XFireExporter声明。在web.xml中配置: <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:org/codehaus/xfire/spring/xfire.xml classpath:applicationContext.xml </param-value> </context-param> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> 在客户端的ApplicationContext.xml中用XFireClientFactoryBean接收服务。注意XFire需要的jar包比较多,配置的时候要小心。 4. 客户端在发送heartbeat时使用了Spring提供的ApplicationEvent,ApplicationEventPublisher和ApplicationListner,然后再web.xml中配置listener。 5. 在发布Web App时运行一个自定义的初始化方法,只需要继承HttpServlet,在init方法中定义具体过程,然后再web.xml中加入servlet即可。 6. 还有一些零散的经验,包括异常处理机制的定义,log系统使用动态生成表,对java.util.Date, java.util.Calendar与mysql中datetime类型的结合使用等。 前台页面设计:没什么经验,效果一般。 前台页面开发:基本未参与,使用JSF + Rich Faces开发,目前看来有一定局限性。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |