轻量级Java EE企业应用实战(第3版)——Struts 2+Spring 3+Hibernate整合开发

轻量级Java EE企业应用实战(第3版)——Struts 2+Spring 3+Hibernate整合开发

几十所院校、培训机构共同的选择

看得懂  学得会  做得出

 

本书是《轻量级Java EE企业应用实战》的第3版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。

本书介绍了Java EE领域的三个开源框架:Struts 2SpringHibernate。其中Struts 2升级到2.2.1Spring升级到3.0.5Hibernate升级到了3.6.0。本书还全面介绍了Servlet 3.0的新特性,以及Tomcat 7.0的配置和用法,本书的示例应该在Tomcat 7.0上运行。

本书重点介绍如何整合Struts 2.2+Spring 3.0+Hibernate 3.6进行Java EE开发,主要包括三部分。第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境。第二部分详细讲解Struts 2.2Spring 3.0Hibernate 3.6三个框架的用法,介绍三个框架时,从Eclipse IDE的使用来上手,一步步带领读者深入三个框架的核心。这部分内容是笔者讲授疯狂Java实训的培训讲义,因此是本书的重点部分,既包含了笔者多年开发经历的领悟,也融入了丰富的授课经验。第三部分示范开发了一个包含7个表、表之间具有复杂的关联映射、继承映射等关系,且业务也相对复杂的工作流案例,希望让读者理论联系实际,将三个框架真正运用到实际开发中去,该案例采用目前最流行、最规范的Java EE架构,整个应用分为领域对象层、DAO层、业务逻辑层、MVC层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了IDE无关的、基于Ant管理的项目源码,也提供了基于Eclipse IDE的项目源码,最大限度地满足读者的需求。

本书不再介绍Struts 1.X相关内容,如果读者希望获取《轻量级J2EE企业应用实战》第一版中关于Struts 1.X的知识,请登录http://www.crazyit.org下载。当读者阅读此书时如果遇到技术难题,也可登录http://www.crazyit.org发帖,笔者将会及时予以解答。

阅读本书之前,建议先认真阅读笔者所著的《疯狂Java讲义》一书。本书适合于有较好的Java编程基础,或有初步JSPServlet基础的读者。尤其适合于对Struts 2SpringHibernate了解不够深入,或对Struts 2+Spring+Hibernate整合开发不太熟悉的开发人员阅读。

   

经过多年沉淀,Java EE平台已经成为电信、金融、电子商务、保险、证券等各行业的大型应用系统的首选开发平台。目前Java行业的软件开发已经基本稳定,这两三年内基本没有出现什么具有广泛影响

力的新技术。Java EE开发大致可分为两种方式:以Spring为核心轻量级Java EE企业开发平台;以EJB 3+JPA为核心的经典Java EE开发平台。无论使用哪种平台进行开发,应用的性能、稳定性都有很好的保证,开发人群也有很稳定的保证。

本书介绍的开发平台,就是以Struts 2.2+Spring 3.0+Hibernate 3.6(实际项目中可能以JPA来代替Hibernate )为核心的轻量级Java EE,这种组合在保留经典Java EE应用架构、高度可扩展性、高度可维护性的基础上,降低了Java EE应用的开发、部署成本,对于大部分中小型企业应用是首选。在一些需要具有高度伸缩性、高度稳定性的企业应用(比如银行系统、保险系统)里,以EJB 3+JPA为核心的经典Java EE应用则具有广泛的占有率。本书的姊妹篇《经典Java EE企业应用实战》主要介绍了后一种Java EE开发平台。

本书主要升级了《轻量级Java EE企业应用实战》的知识,采用最新的Tomcat 7作为Web服务器,全面而细致地介绍了Servlet 3.0的新特性,并将Struts升级到Struts 2.2.1Spring升级到3.0.5Hibernate升级到3.6.0。书中详细介绍了SpringHibernate零配置特性,并充分介绍了Struts 2Convention(约定)支持。本书不仅介绍了Spring 2.xAOP支持,详细介绍了Spring 2.xSchema配置所支持的utilaoptx等命名空间,还简要讲解了AspectJ的相关内容。本书也重点介绍了Spring 3.0的新功能:SpELSpEL不仅可以作为表达式语言单独使用,也可与Spring容器结合来扩展Spring容器的功能。

本书创作感言

笔者首先要感谢广大读者对本书第2版的认同,在将近2年的时间内,本书第2版的销量高达178万码洋,得到无数Java学习者的认同,成为Java EE开发者首选的经典图书。考虑到目前技术的升级,笔者现将本书的全部技术升级到最新版、最前沿,以飨读者。

还有一个值得介绍的消息:本书姊妹篇《经典Java EE企业应用实战》(由电子工业出版社出版,ISBN 978-7-121-11534-9)现已上市。学习本书时可以采用轻经合参的方式来学习:指的是以“SSH”整合的轻量级Java EE开发平台,指的是以“EJB 3+JPA”整合的经典Java EE开发平台;这两种平台本身具有很大的相似性,将两种Java EE开发平台结构放在一起参考、对照着学习,能更好地理解SpringHibernate框架的设计思想,从而更深入地掌握它们。与此同时,也可以深入理解EJB 3Spring容器中的BeanEJB容器与Spring容器之间的联系和区别,从而融会贯通地掌握EJB 3+JPA整合的开发方式。

经常有读者写邮件来问笔者,为何你能快而且全面地掌握各种Java开发技术?笔者以前做过一些零散的回复。这里简单地介绍笔者学习Java的一些历史与方法,希望广大读者从中借鉴值得学习的地方,避开一些弯路。

笔者大约是1999年开始接触Java,开始主要做点Applet玩(当时笔者对Applet做出来的动画十分倾心)。后来开始流行ASPJSP,笔者再次喜欢上ASPJSP那种极其简单的语法、短期内的快速上手,后来断断续续用ASPJSP写了多个小型企业网站、BBSOA系统之类——不知道其他人是什么经历,笔者选择编程一方面是因为个人爱好和自豪感(觉得能做出各种软件,有点成就感),另一方面是因为编写软件可以轻易地卖点钱(是不是很俗?),但这个目的笔者无法回避——由于出生在湖北一个贫穷的乡下,所以在同济念书时笔者常常为了开饭而写代码,或许有一些程序员和笔者会有相同的感触。

在后来的开发过程中,笔者发现纯粹的JSP开发虽然前期很方便,但由于开发时代码重复得厉害,所以后期升级、维护很痛苦,于是开始大规模地修改自己写的一堆垃圾代码,不断地思考怎样对JSP脚本进行提取、封装到Java Bean中,这个过程并不顺利,经常遭遇各种性能问题、并发问题。原本可以运行良好的应用,反而被改得经常出现问题。

大约到了2000年,笔者接触到EJB,对EJB许下的承诺无比欣羡,于是义无反顾地投入EJB的怀抱,不过EJB的学习并不顺利,当时用的好像是WebLogic 5的服务器,那时候觉得WebLogic 5所报的错误晦涩、难以阅读,动辄几屏的错误信息,让人感觉很有压力。

不过笔者是一个顽固的人,遇到错误总是不断地修改、不断地尝试,在这样的尝试中,不知不觉中,天色已经发白。说来惭愧,第一个Hello World级的Entity EJB居然花了将近一个月的时间才弄完(绝不建议读者从EJB 1.1EJB 2开始学习,这只会给学习徒增难度,而且现在EJB 1.1EJB 2都已被淘汰)。在那段时间内,笔者连最心爱的C几乎完全没碰过。

在接下来的2年多时间内,笔者一直沉浸在EJB中,不断地搜寻各种关于EJB的资料、不断地深入钻研着关于EJB规范、EJB的运行、EJB容器的运行机制。随着时间的流逝,EJBEJB容器的运行原理逐渐明朗起来。

那是一段让人怀念的、神话般的岁月,年轻的人,似乎拥有无穷的精力,那也是笔者Java技术增长最迅速的3年,笔者的Java EE功底也是在那3年内打下的,后来接触的各种技术只是在那个基础上修修补补,或者温故而知新

2004年初,笔者开始接触到Spring框架,从接触Spring的第一天开始,直到今天,笔者一直觉得SpringEJB之间有很大的相似性:

Spring本身也是一个容器,只是EJB容器管理的是EJBSpring容器管理的是普通Java对象。

SpringBean类的要求很少,EJB容器对EJB的要求略多一些——所以初学者学习EJB上手较难,但学习Spring就简单得多。

因为找到这种类比性,笔者学习Spring时,总是不断地将EJBSpring进行类比,然后再找出它们之间的不同之处。由于采用了这种温故而知新的学习方式,所以笔者很容易就理解了Spring的设计,而且更加透彻。

很多Java学习者在学习过程中往往容易感觉Java开发内容纷繁芜杂,造成这种感觉的原因就是因为没有进行很好的归纳、总结、类比。为了避免知识越学越多的混乱感,读者应该充分利用已掌握的知识,温故而知新——一方面对已有的知识进行归纳、总结,另一方面将新的内容与已掌握的知识进行类比,这样既能把已有的知识掌握得更有条理、更系统,也能更快、更透彻地掌握新的知识。

出于以上理由,笔者在介绍非常专业的编程知识之时,总会通过一些浅显的类比来帮助读者更好地理解。简单、易读成为笔者一贯坚持的创作风格,也是疯狂Java体系丛书的特色。另一方面,疯狂Java体系图书的知识也很全面、实用。笔者希望读者在看完疯狂Java体系的图书之后,可以较为轻松地理解书中所介绍的知识,并切实学会一种实用的开发技术,进而将之应用到实际开发中。如果读者在学习过程中遇到无法理解的问题,可以登录疯狂Java联盟(http://www.crazyit. org)与广大Java学习者交流,笔者也会通过该平台与大家一起交流、学习。

本书有什么特点

本书保持了《轻量级Java EE企业应用实战》第2版简单、实用的优势,同样坚持让案例说话、以案例来介绍知识点的风格,在书的最后同样示范开发了企业工作流案例,希望读者通过该案例真正步入实际企业开发的殿堂。

本书依然保留了《轻量级J2EE企业应用实战》第2版的三个特色。

1.经验丰富,针对性强

笔者既担任过软件开发的技术经理,也担任过软件公司的培训导师,还从事过职业培训的专职讲师,这些经验影响了笔者写书的目的,不是一本学院派的理论读物,而是一本实际的开发指南。

2.内容实际,实用性强

本书所介绍的Java EE应用范例,采用了目前企业流行的开发架构,绝对严格遵守Java EE开发规范,而不是将各种技术杂乱地糅合在一起号称Java EE。读者参考本书的架构,完全可以身临其境地感受企业实际开发。

3.高屋建瓴,启发性强

本书介绍的几种架构模式,几乎是时下最全面的Java EE架构模式。这些架构模式可以直接提升读者对系统架构设计的把握。

本书写给谁看

如果你已经掌握了Java SE内容,或已经学完了《疯狂Java讲义》一书,那么你非常适合阅读此书。除此之外,如果你已有初步的JSPServlet基础,甚至对Struts 2Spring 3.0Hibernate 3.6有所了解,但希望掌握它们在实际开发中的应用,本书也将非常适合你。如果你对Java的掌握还不熟练,则建议遵从学习规律,循序渐进,暂时不要购买、阅读此书。

 

轻量级Java EE企业应用实战(第3版)——Struts 2+Spring 3+Hibernate整合开发

 

 

轻量级Java EE企业应用实战(第3版)——Struts 2Spring 3Hibernate整合开发

    编著

ISBN 978-7-121-12814-1

20112月出版

定价:89.00元(含光盘1)

16

832

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110651.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • matlab中interp1什么意思,matlab中interp1函数是什么意思啊?

    matlab中interp1什么意思,matlab中interp1函数是什么意思啊?csape可以选择样条的边界条件,interp1无法使用边界条件;csape只是Cubicspline插值,interp1可以选择几种不同的插值方法。csape函数的用法如下:pp=csape(x,y,conds,valconds)其中(x,y)为数据向量,conds表示变界类型,valconds表示边界值。边界类型(conds)可为:’complete’,给定边界一阶导数.’not-a-…

  • Struts2漏洞分析「建议收藏」

    Struts2漏洞分析「建议收藏」当在浏览器输入如下地址时:      http://www.xxxx.com/aaa.action?(‘\u0023_memberAccess[\’allowStaticMethodAccess\’]’)(meh)=true&(aaa)((‘\u0023context[\’xwork.MethodAccessor.denyMethodExecution\’]\u003d\u0023foo’)

  • Qt5 QMediaPlayer 音乐播放器

    Qt5 QMediaPlayer 音乐播放器   暑假用Qt写的音乐播放器,界面有点丑,然后功能也有点少,还有一些bug,然后现在趁着寒假的时间把之前的界面给改了一下,并添加了一些功能,修改了一些bug,实现功能包括基本的歌曲播放暂停,上一首,下一首,添加歌曲,添加为我喜欢,添加至我的收藏,最近播放,列表的右键菜单,主窗口的右键菜单,删除歌曲,多选,查看歌曲信息,改变播放模式(顺序播放,随机播放,单曲循环),歌曲定位,清除列表,换皮肤…

  • Python基本特殊方法之__new__建议收藏

    __new__()和不可变对象__new__方法的一个用途是初始化不可变对象,__new()__方法中允许创建未初始化的对象,这允许我们在__init__()方法被调用之前先设置对象的属性例:为f

    2021年12月19日
  • 关于Google FREE Webhosting !的欺诈邮件 200∞「建议收藏」

    关于Google FREE Webhosting !的欺诈邮件 200∞「建议收藏」早上收到了一封貌似正常的邮件:Hello,DearGmailcustomerAfterourfreeemailservicesweofferyoutosingupforourfreehostingservices.Thisservicecurrentlyisinbetatest.Andwechooseyoutotestthis…

  • <四> H264解码输出yuv文件

    <四> H264解码输出yuv文件现在来写下s5pv210的h264解码,这一章有些部分我理解的不是很透彻,只能写个大概了。希望看到的人能给出些意见,有些地方写错的还望指正出来!  解码过程与编码过程类似,编码过程是先初始化编码器,然后从编码器输出buf中读出h264文件头数据,写入输出文件,然后开始不断地将一帧帧NV12格式的图像写入到编码器的输入buf,启动编码,从编码器输出buf中将h264视频数据写入到输出文件。解

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号