基本信息
编辑推荐
《疯狂Java讲义》作者李刚作品,畅销书《轻量级J2EE企业应用实战》第二版。.
看得懂,学得会,做得出!...
内容简介
计算机书籍
本书是《轻量级J2EE企业应用实战》的第二版,同时还融合了《整合Struts+Hibernate+Spring应用开发详解》理论部分。实际上,本书凝结了前两本书的精华部分。
本书介绍了Java EE领域的三个开源框架:Struts 2、Spring和Hibernate。其中Struts 2升级到2.1.2,Spring升级到2.5.5,Hibernate升级到3.2.6。本书保留《轻量级J2EE企业应用实战》里关于Tomcat、Jetty的介绍,新增了关于Ant、CVS的内容。
本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,包括如何搭建开发环境。第二部分详细讲解了Struts 2.1、Spring 2.5和Hibernate 3.2三个框架用法,介绍三个框架时,通过Eclipse IDE的使用来上手,一步步带领读者深入三个框架的核心。这部分内容是笔者讲授“疯狂Java实训”的培训讲义,既包含了笔者多年开发经历的领悟,也融入了丰富的授课经验。第三部分示范开发了一个包含7个表,表之间具有复杂的关联映射、继承映射等关系,且业务也相对复杂的工作流案例,让读者理论联系实际,将三个框架真正运用到实际开发中去。该案例采用目前最流行、最规范的Java EE架构,整个应用分为领域对象层、DAO层、业务逻辑层、MVC层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。
本书不再介绍Struts 1.x相关内容,如果读者希望获取《轻量级J2EE企业应用实战》第一版中关于Struts 1.x的知识,请登录http://www.crazyit.org/下载。当读者阅读此书遇到技术难题时,也可登录http://www.crazyit.org/发帖,笔者将会及时予以解答。
阅读本书之前,建议先认真阅读笔者所著的《疯狂Java讲义》一书。本书适合于有较好的 Java编程基础,或有初步JSP、Servlet基础的读者阅读。尤其适合于对Struts 2、Spring、Hibernate了解不够深入,或对Struts 2+ Spring+Hibernate整合开发不太熟悉的开发人员阅读。
目录
第1章 Java EE应用和开发环境
1.1 Java EE应用概述
1.1.1 Java EE应用的分层模型
1.1.2 Java EE应用的组件
1.1.3 Java EE应用结构和优势
1.1.4 常用的Java EE服务器
1.2 轻量级Java EE应用相关技术
1.2.1 JSP、Servlet和JavaBean及替代技术
1.2.2 Struts 2.1及替代技术
1.2.3 Hibernate 3.2及替代技术
1.2.4 Spring 2.5及替代技术
1.3 Tomcat的下载和安装
1.3.1 安装Tomcat服务器
1.3.2 配置Tomcat的服务端口
1.3.3 进入控制台
1.3.4 部署Web应用
1.3.5 配置Tomcat的数据源
1.4 Jetty的下载和安装
1.4.1 Jetty的下载和安装
前言
在实际的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算法。他们感叹:原来如此简单,可惜以前从来没有人这样跟我讲过。
很多看似深奥的知识,可能只是因为你看了一些翻译得过于生僻的专业术语,或者是因为你看了一段过于晦涩的讲解,更甚至于只是你的畏难心理作祟。抛开这些障眼的浮云,你会发现:编程领域的许多知识和日常生活中的常识有极高的相似性。
由于这个缘故,有人评价笔者的书过于简单,主要针对初学者——那么,笔者愿意把简单作为其创作特色,笔者不愿故作高深,宁愿以简单方式来解决实际问题。笔者希望读者认真看完一本书后,实际开发问题得到了解决,并切实学会一种实用的开发技术,而不是空洞的吹嘘理论。
有时候忍不住想:中国传统的风水理论、玄学理论、中医理论,也许未必真的那么深奥,是不是曾经被人为地复杂化,人为地高深化了,所以导致这些知识没有更好地流传开来?如果我们用通俗、易懂的的方式来传播它们,也许不是今天这个局面。
比如极个别的Java技术论坛,如果一个Java学习者去提问,得到的结果往往是几句看似高深的提示,甚至是几句嘲笑,但实际问题依然没有解决——这种解决问题的方式,让故作高深的人获得了一种精神上的、虚无的优越感,对普通学习者,却是一场灾难。有感于此,笔者亲自创办了http://www.crazyit.org/论坛,希望带给广大技术学习者更好的交流平台。
本书有什么特点
本书保持了《轻量级J2EE企业应用实战》一书简单、实用的优势,同样坚持让案例说话、以案例来介绍知识点的风格。本书最后同样示范开发了企业工作流案例,希望读者通过该案例真正步入实际企业开发的殿堂。
本书依然保留了《轻量级J2EE企业应用实战》第一版的三个特色:
1.经验丰富,针对性强
书摘
第1章 Java EE应用和开发环境
时至今日,轻量级Java EE平台在企业开发中具有绝对的优势,Java EE应用以其稳定的性能、良好的开放性及严格的安全性,深受企业应用开发者的青睐。实际上,对于信息化要求较高的行业,如银行、电信、证券及电子商务等行业,都不约而同地选择了Java EE开发平台。
对于一个企业而言,选择Java EE构建信息化平台,更体现了一种长远的规划:企业的信息化是不断整合的过程,在未来的日子里,经常会有不同平台、不同系统的异构系统需要整合。Java EE应用提供的跨平台性、开放性及各种远程访问的技术,为异构系统的良好整合提供了保证。
2006年,Sun提出了Java EE的概念,与之同步出现了两个主要规范:JSF 1.2和EJB 3.0。但应用依然不如SSH(Struts+Spring+Hibernate)组合的应用广泛,SSH组合是--干e0轻量级的Java EE平台,具有高度的实用性、高度的可扩展性。基于轻量级Java EE平台的应用可以运行在普通Web容器中,无须EJB容器的支持,且一样具有稳定的性能和极高的可扩展性、可维护性。
本书作为《轻量级J2EE企业应用实战》的第二版,将全面升级SSH组合里三个开源框架的版本:Struts将全面升级到2.1,Sprin9将升级到2.5,Hibernate将升级到3.2,尽量让读者走在技术的最前沿。
1.1 Java EE应用概述
今天我们所说的Java EE应用,往往超出了Sun所提出的经典Java EE应用规范,而是一种更广泛的开发规范。经典Java EE应用往往以EJB(企业级Java Bean)为核心,以应用服务器为运行环境,所以通常开发、运行成本较高。本书所介绍的轻量级Java EE应用具备了Java EE规范的种种特征,例如面向对象建模的思维方式、优秀的应用分层以及良好的可扩展性、可维护性。轻量级Java EE应用保留了经典Java应用的架构,但开发、运行成本更低。
1.1.1 Java EE应用的分层模型
不管是经典的Java EE架构,还是本书所介绍的轻量级Java EE架构,大致上都可分为如下几层:
Domain Object(领域对象)层:此层由系列的POJO(Plain Old Java Object,普通的、传统的Java对象)组成,这些对象是该系统的Domain Object,往往包含了各自所需要实现的业务逻辑方法。
DAO(Data Access Object,数据访问对象)层:此层由系列的DA0组件组成,这些DAO实现了对数据库的创建、查询、更新和删除(CRUD)等原子操作。
业务逻辑层:此层由系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法。这些业务逻辑方法可能仅仅用于暴露Domain Object对象所实现的业务逻辑方法,也可能是依赖DA0组件实现的业务逻辑方法。
控制器层:此层由系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果转发到不同的表现层组件。
表现层:此层由系列的JSP页面、Velocity页面、PDF文档视图组件组成。此层负责收集用户请求,并将显示处理结果。
……