今天忙了一天,收获不小。到公司接到个小项目,需求很简单,时间也很宽松,我就想用spring+hibernate来做,其实有点杀鸡用牛刀的味道,但我觉得能通过实践来学习spring和hibernate,也还是不错的。
spring和hibernate我也是刚学,各看了本书,然后搞了搞spring的sample,就是那个jpetstore和petclinic,一个是用ibatis,一个用hibernate做persistence层。同时有一个刚进公司的人跟着我做,我也就得先把项目初始化好,写好配置文件,分好包和层次结构,然后放cvs上。既然用spring+hibernate,配置文件肯定是很多的,我基本是参照petclinic,分了dao, dao.hibernate, model, model.logic, service, web这几个包,配置文件定义了applicationContext.xml,app-servlet.xml(我用spring mvc) , log4j.properties,jdbc.properties, mail.properties,说到spring的配置文件,其实也不复杂,搞懂了它的IoC(DI)和AOP就很容易配了,层次定义清楚,在头脑中对谁ref谁有概念,基本就不大会配错了。错了也没关系,它的log功能强大,定义好log4j,出了什么错都能有详细的记录。我搞spring的sample时就是把这个配置改改,那个删掉,自己写个类,替换它的。。。。。。这样很快就对它的配置文件有了深刻的理解。这次算是我第一个正式用spring的项目,但因为前面在理论上和零星的实践中对它有了较深的认识,也就大大降低了项目的风险(技术预研真的很重要啊!)。
虽然是小项目,但也得规范一下,定好项目计划,统一大家使用的工具和环境,简单交代编程的注意事项,如代码规范,cvs的使用,多写test类等。我们采用eclipse3.1+ myeclipse+tomcat5+mysql作为各自的开发和单元测试环境,上线使用websphere5+db2。我是要求先在mysql上能跑,然后能方便的迁移到db2上的,这样方便进行单元测试,也能在事实上与数据库解耦合,用hibernate很容易做到这一点。
但要能顺利的上线到websphere5,我就没什么把握了,毕竟它还是使用ibm 的jdk1.3,而且很多东西跟tomcat不同,更会不会有什么lib冲突等问题。我先把兼容性测试放在了开发的前面,否则在tomcat上开发好了,websphere不支持或出现难以解决的问题,就麻烦了,严重的可能要推倒重来。因为没在实际项目中使用过spring,周围又没什么人可问(我毕业一年多,没有高手指导,全靠自学和实际项目中领悟),所以有这些疑问也是正常的。不管如何,先把项目在tomcat上跑起来再说。改了一通配置文件,配好tomcat的数据源,往mysql加一个最简单的表(id一个字段),写了2张最简单的jsp(测试spring mvc的multiaction用),一个jsp显示从数据库获得的id。开启和关闭几次tomcat(我比较粗心大意,配错好几处),id就能在页面上显示了。Tomcat上基本配置完成,这也忙了个3、4个小时。
然后就是做兼容性测试了。我们有个websphere的测试环境,先把项目deploy到它上面。测试环境没用ND,我先deploy到server1上,这样能重启应用。Deploy完成,页面都出不来,500错,应用就没起来。先看日志,哇!一堆错。分析日志,好像是先装载的DispatcherServlet, 然后才是ContextLoaderServlet,当然出问题了,不过至少说明它找到了lib下的spring.jar也能work。我使用的Listener而不是Servlet来load context,估计是这个原因导致的,tomcat工作正常,websphere对Listener就不保证先启动了。于是改成使用Servlet,tomcat测试通过,我将改过的web.xml覆盖服务器(这里要覆盖2个地方,一个是应用下的,还有一个config/cells…..下的), 重启应用,再看日志,还是错。不过这次是先启动ContextLoaderServlet了,但一上来就错了,报错:javax.naming.NamingException: Attempted to use a 4.0 DataSource from a 2.3 (or higher) servlet。这不是spring的问题,呵呵!我用的数据源V4,结果用了j2ee2.3,再改web.xml,头上改成用j2ee2.2,再覆盖,再启应用。这次首页出来了,看日志,一切正常。呵呵!没那么多问题嘛,jdk1.3照样跑最新的spring和hibernate。
今天从零开始把spring和hibernate跑了起来,也算是一次不错的实战,就作为spring+hibernate实战的第一篇吧,接下来几天,我在项目中的体会也会记录下来,当成一个一个系列吧。
分享到:
相关推荐
《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax...第9章以后的内容则需要掌握Spring、Hibernate等Java EE知识,建议先认真阅读疯狂Java体系的《轻量级Java EE企业应用实战》一书。
轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书123全套.part3.rar
轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发
根据标题、描述和部分内容,知识点覆盖范围主要集中在Java Web开发领域,并且包括了JSP、Servlet、Ajax以及SSH框架(Struts 2、Spring、Hibernate)的技术整合和实战案例分析。 JSP(Java Server Pages)是一种动态...
《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书1》是一本专注于Java EE企业级应用开发的书籍,主要涵盖了Struts 2、Spring和Hibernate这三个流行开源框架的整合应用。这本书对于Java...
轻量级 J2EE 企业应用实战 -- Struts+Spring+Hibernate 整合开发笔记 本资源为轻量级 J2EE 企业应用实战开发笔记,涵盖 Struts、Spring 和 Hibernate 三大框架的整合开发实践。笔记从 JDK 安装和配置环境变量开始,...
《轻量级J2EE企业应用实战--Struts+Spring+Hibernate整合开发》源码.part6
Struts2、Spring和Hibernate是Java Web开发中的三大主流框架,它们共同构成了企业级应用的基础架构,被广泛用于构建高效、可维护性高的Web应用程序。本资料主要关注这三者结合的实际应用和项目实战,通过源码分析和...
比较流行的一本书,在公司内很受欢迎 比较实用 下半部分,需与上半部分放在一起解压。
《轻量级J2EE 企业应用实战--Struts+Spring+Hibernate 整合开发》 PDF 和 源代码 下载资源评分后,资源分还会返还给你!!注意:是“评分”,不仅要有评论,而且要有评分,在评论的左上角有五个五角星,单击这五个...
这个"struts+spring+hibernate"示例工程是用于演示这三大框架如何协同工作,为开发者提供了一个实战性的学习平台。 Struts 是一个基于 Model-View-Controller(MVC)设计模式的Web应用框架,它主要负责处理用户请求...
《轻量级J2EE企业应用实战--Struts+Spring+Hibernate整合开发》图书配套源码part1
Struts2、Spring和Hibernate是Java开发中常用的三大框架,它们各自解决了一部分软件开发中的问题,而将它们集成在一起,通常称为“SSH2”框架(Struts2、Spring、Hibernate第二代)。这个框架组合提供了完整的MVC...
《轻量级Java+EE企业应用实战——Struts 2 + Spring + Hibernate整合开发》是针对Java企业级应用开发的一本实战指南,旨在帮助开发者掌握使用Struts 2、Spring和Hibernate三大框架进行高效集成开发的技术与技巧。...
轻量级JavaEE企业应用实战_Struts2+Spring3+Hibernate整合开发_第3版.part2
轻量级JavaEE企业应用实战_Struts2+Spring3+Hibernate整合开发_第3版.part1
在“Java高级框架应用开发案例教程 Struts2+Spring+Hibernate.pdf”这本书中,读者可以期待深入浅出的讲解和实战案例,帮助他们从理论到实践,全面掌握SSH框架的综合运用。通过阅读和实践书中的内容,开发者可以提升...
Spring+Struts+Hibernate开发实战(达内课程)