轻量级Java EE企业应用实战:Struts 2+Spring 3+Hibernate整合开发的前言
经过多年实践证明,J2EE(Java 2 Enterprise Edition)的确是最优秀的企业信息化开发平台。由于J2EE的名称容易引起误解,Sun将J2EE更名为Java EE,如今,Java EE平台已经成为电信、金融、电子商务、保险、证券等各行业的大型应用系统的首选开发平台。
在实际的Java EE平台中,使用Struts 2+Spring+Hibernate进行整合开发是最为流行的开发平台,这种开发平台也被称为轻量级Java EE企业应用平台。与经典的、以EJB为核心的Java EE应用相比,轻量级Java EE应用简化了经典Java EE应用的难度,在保留经典Java EE应用架构、高度可扩展性、高度可维护性的基础上,降低了Java EE应用的开发、部署成本。
本书融合《轻量级J2EE企业应用实战》、《整合 Struts+Hibernate+Spring应用开发详解》两本书的理论部分,并将Struts 2升级到Struts 2.1.2,Spring升级到2.5.5,Hibernate升级到3.2.6。新增了Struts 2、Spring和Hibernate三个框架的“零配置”特性的内容,并重点介绍了Spring 2.x的AOP支持,详细介绍了Spring 2.x中Scheme配置所支持的util、aop、tx等命名空间。由于Spring 2.x的AOP需要AspectJ支持,所以本书还简要讲解了AspectJ的相关内容。
本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,包括如何搭建开发环境。第二部分详细讲解了Struts 2.1、Spring 2.5和Hibernate 3.2三个框架用法,介绍三个框架时,通过Eclipse IDE的使用来上手,一步步带领读者深入三个框架的核心。这部分内容是笔者讲授“疯狂Java实训”的培训讲义,既包含了笔者多年开发经历的领悟,也融入了丰富的授课经验。第三部分示范开发了一个包含7个表,表之间具有复杂的关联映射、继承映射等关系,且业务也相对复杂的工作流案例,让读者理论联系实际,将三个框架真正运用到实际开发中去。该案例采用目前最流行、最规范的Java EE架构,整个应用分为领域对象层、DAO层、业务逻辑层、MVC层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。
本书创作感言
到现在为止,笔者已出版了不少软件开发技术的图书,比如Spring、Ajax、Struts 2和Ruby On Rails等,笔者所一直致力于软件开发技术的最前沿写作,这正是笔者写书的目的:传播知识,希望能将国际流行的、实用的软件开发技术带给国内读者。
笔者现阶段主要从事软件开发培训,而且一直坚持一线授课工作,因为这份工作既是激发笔者创作的直接原因,也给笔者的创作带来巨大的帮助。在长达2年多的授课生涯中,笔者接触了大量大学毕业生,以及一些做了2~3年开发、但工资依然不高的程序员,笔者对他们的彷徨、苦痛感同身受,因为笔者曾经也经历过学习技术的苦痛:当我们面临一个又一个无法解决的技术难题时,那种巨大挫败感、压抑感,那种夜不能寐、彻夜思索的经历,只有真正的程序员才懂——笔者完全可以体会,因为这些经历就是笔者的过往。
有感于此,所以笔者创作图书时主要关心如下几点:
读者是否可以看懂、理解各知识点的讲解?是否可以运用这些知识解决实际开发问题?
书中的案例是否可以运行?这些案例是否采用实际开发的应用架构?
读者是否可参考本书来开发实际项目?读完本书后是否能获得实用的软件开发技巧?
笔者相信这些也是真正的读者所关心的,所以笔者尽量使用简短的语句、通俗的说法来介绍那些所谓的“深奥知识”。实际上,笔者一种感觉:当真正达到融会贯通的境界后,再去看那些所谓的“深奥知识”时会产生一种“不过如此”的感觉。比如笔者上课介绍 HashSet的存取时,笔者告诉学生:实际上就像你妈妈教你“不同的东西放在不同的位置”,这样才能最快地找到它,你可以把你妈妈的那套存取规则理解为 Hash算法。他们感叹:原来如此简单,可惜以前从来没有人这样跟我讲过。
很多看似深奥的知识,可能只是因为你看了一些翻译得过于生僻的专业术语,或者是因为你看了一段过于晦涩的讲解,更甚至于只是你的畏难心理作祟。抛开这些障眼的浮云,你会发现:编程领域的许多知识和日常生活中的常识有极高的相似性。
由于这个缘故,有人评价笔者的书过于简单,主要针对初学者——那么,笔者愿意把简单作为其创作特色,笔者不愿故作高深,宁愿以简单方式来解决实际问题。笔者希望读者认真看完一本书后,实际开发问题得到了解决,并切实学会一种实用的开发技术,而不是空洞的吹嘘理论。
有时候忍不住想:中国传统的风水理论、玄学理论、中医理论,也许未必真的那么深奥,是不是曾经被人为地复杂化,人为地高深化了,所以导致这些知识没有更好地流传开来?如果我们用通俗、易懂的的方式来传播它们,也许不是今天这个局面。
本书有什么特点
本书保持了《轻量级J2EE企业应用实战》一书简单、实用的优势,同样坚持让案例说话、以案例来介绍知识点的风格。本书最后同样示范开发了企业工作流案例,希望读者通过该案例真正步入实际企业开发的殿堂。
本书依然保留了《轻量级J2EE企业应用实战》第一版的三个特色:
1.经验丰富,针对性强
笔者既担任过软件开发的技术经理,也担任过软件公司的培训导师,还从事过职业培训的专职讲师。这些经验影响了笔者写书的目的,不是一本学院派的理论读物,而是一本实际的开发指南。
2.内容实际,实用性强
本书所介绍的Java EE应用范例,采用了目前企业流行的开发架构,绝对严格遵守Java EE开发规范,而不是将各种技术杂乱地糅合在一起号称Java EE。读者参考本书的架构,完全可以身临其境地感受企业实际开发。
3.高屋建瓴,启发性强
本书介绍的几种架构模式,几乎是时下最全面的Java EE架构模式。这些架构模式可以直接提升读者对系统架构设计的把握。
与《轻量级J2EE企业应用实战》第一版相比,程序中关键代码以粗体字标出,可以让读者更迅速地找到这些程序的关键点。书中代码的注释更加详细,几乎每两行代码就有一行注释,这些注释也添加在光盘的源代码中,并且给出了书中代码和光盘源代码的对应关系,尽量降低读者阅读光盘源码的难度。
本书写给谁看
如果你已经掌握Java SE内容,或已经学完了《疯狂Java讲义》一书,那你非常适合阅读此书。
如果你已有初步的JSP、Servlet基础,甚至对Struts 2、Spring 2.5、Hibernate 3.2有所了解,但希望掌握它们在实际开发中的应用,本书也将非常适合你。
如果你对Java的掌握还不熟练,则建议遵从学习规律,循序渐进,暂时不要购买、阅读此书。
2008年8月20日