Java EE企业应用实战 李刚新作
时间:2010-08-30 来源:博文视点
前 言
目前Java EE应用的开发方式大致可分为两种:一种以Spring、Hibernate等开源框架为基础,这就是通常所说的轻量级Java EE应用;另一种则以EJB 3+JPA为基础,也就是本书所介绍的经典Java EE应用。在EJB 3出现以前,由于EJB学习曲线陡峭,使用时也有点困难,因此影响了EJB在实际项目中的使用。为此EJB 3进行了大刀阔斧的改革,有人说EJB 3中的Session Bean就像Spring容器中的Bean:只要一个接口和一个实现类即可——其实这句话说反了,应该说Spring框架充分借鉴了早期的EJB规范,但对EJB规范进行了简化,比如它不要求Bean继承任何基类,而且Spring对Bean的要求比较“温柔”:它只是建议面向接口编程;而EJB规范则显得很“强硬”:EJB必须有一个接口和一个实现类。但最终殊途同归:Spring容器中的Bean通常由一个接口和一个实现类组成,EJB也由一个接口和一个实现类组成。到了EJB 3时代,开发Session Bean不会比开发Spring中的Bean更复杂,EJB 3中的Session Bean同样不需要继承任何基类,只要提供一个接口、一个实现类即可,也就是说,EJB 3规范也吸收了Spring框架简单、易用的特性。
Java EE 5的两个核心规范是EJB 3和JPA,EJB 3使Java EE应用开发变得更加简单;而JPA规范则体现了Sun公司的良苦用心——Java开源领域中各种ORM框架层出不穷,而Java EE开发者则疲于学习各种ORM框架:Hibernate是主流,但下一家公司可能选择其他ORM框架,于是开发者不得不重新学习……在这样的背景下,JPA规范诞生了,JPA本质上应属于一种ORM规范,应用开发者只需要学习JPA规范、掌握JPA API即可,不需要为使用Hibernate学习一套API,为使用TopLink又要重新学习一套API。开发者面向JPA规范编程,而底层则可以在不同ORM框架(可理解为JPA实现)之间自由切换。通常来说,应用服务器会负责为JPA规范提供ORM实现;如果开发者希望在Java SE应用程序中使用JPA,这也是允许的,只要开发者自行为JPA选择合适的ORM实现即可。事实证明,在应用程序中使用JPA作为持久化解决方案更方便,而且能在各种ORM框架之间自由切换,具有更好的可扩展性。
Java EE 5规范面世以来,大量开发者重新回归到EJB 3+JPA旗下,采用EJB 3+JPA开发的企业级应用也越来越多,这也是本书所介绍的企业级应用。除此之外,本书还重点介绍另一个Java EE规范:JSF,JSF作为一个前端MVC框架,能与EJB 3+JPA完美整合,从而开发出具有高度可扩展性、高度可维护性的企业级应用。
本书创作感言
到现在为止,“疯狂Java体系”系列图书已经完成了5本,在这几年内,经常收到一些读者邮件,或通过www.crazyit.org发帖询问:XXX图书什么时候可以看到啊?与广大读者期待的心情相比,笔者显得有些不够努力。
不过回过头来看,“疯狂Java体系”系列图书的写作其实并不容易,因为这个体系基本覆盖了Java学习、工作者的主要相关技术,也覆盖了“疯狂Java实训营”的绝大部分课程,因此整个体系非常庞大,而且笔者现在常常有“岁月不饶人”的感觉:以前晚上工作到凌晨2~3点,第二天7点多起来依然神采奕奕,但现在到了凌晨1点就想睡觉了。但只要想到读者殷切的希望,以及当初的“宏伟”构想:完成疯狂Java体系图书,让广大Java学习、工作者有一套系统、全面的学习、参考体系,一种巨大的成就感、充实感从心底油然而生,这种感觉鞭策着笔者坚持到底。
今天,疯狂Java体系图书已经趋于完成,这套系列图书囊括了Java开发领域两种重要的开发方式:①以Spring+Hibernate为基础的轻量级Java EE;②以EJB 3+JPA为基础的经典Java EE。当然,不管学习哪种Java EE,都应该先打下夯实的Java基础,这样学习后面的Java EE开发才可以事半功倍。因此笔者并不建议开始就学习Spring+Hibernate,也不建议开始就学习EJB 3+JPA,学习还是应该遵循学习规律:先从基础开始,一步一个脚印地学习。
从2005年开始创作第一本Java技术图书开始,到现在已经过了5年多时间,也许很少有人愿意坚持这么长时间来创作Java技术图书。认识很多做过多年开发的老程序员,他们往往出版了第一本图书之后,以后再也不写了。因为出版第一本图书可以凭兴趣、凭热情,但出版第一本之后可能会发现:创作一本图书所投入的精力可能远远超出预期,而所获得的金钱回报则远远低于预期,所以大部分都放弃了。但笔者坚持了下来,期间的艰辛只有那些创作过技术图书的人才会懂;那些站在一旁临渊羡鱼、不平妒忌、指手划脚的人是不可能懂的。
这本书同样会让读者感觉到“EJB 3原来如此简单”、“JPA原来如此简单”——这也是笔者创作技术图书的一贯原则:用浅显、直白的方式来讲解那些误以为“深奥”的知识,帮助更多有志于软件开发的朋友快速步入实际开发,大大缩短学习周期。
本书有什么特点
本书作为《轻量级Java EE企业应用实战》的姊妹篇,两本书在知识体系上互为补充,在知识讲解方式、写作风格上保持一致:两本书同样具有简单、实用的特点,同样坚持为每个知识点都提供配套小实例,以实例为导向,通过实际的实例来介绍各知识点的用法。不仅如此,本书最后还提供了一个基于JSF+EJB 3+JPA的电子拍卖项目,方便读者掌握EJB 3+JPA在实际项目中的应用,进而在实际开发中熟练运用这种开发架构。
与《轻量级Java EE企业应用实战》相似,本书具有如下特点。
1.知识全面,系统性好
本书系统、全面地介绍了Sun制订的Java EE规范的JSF、JTA、JMS、JavaMail、Session Bean、Message Driven Bean、JPA、JPQL、JAX-WS 2、JAAS等规范,而且兼顾JBoss、WebLogic两大主流应用服务器。因此学习本书可以全面、深入地掌握Sun所制订的经典Java EE规范。
2.讲解详细,示范性强
笔者既担任过软件开发的技术经理,也担任过软件公司的培训导师,还从事过职业培训的专职讲师。因此笔者可以对学习、开发中重点及难点进行针对性的详细讲解,并提供配套实例,具有很好的示范性。
3.内容实际,实用性强
本书并不是一本学院派的理论读物,这一点从本书为各知识点所提供的大量实例中即可看出。不仅如此,本书所介绍的EJB 3+JPA整合开发采用了严格的分层结构,而不是将各种技术杂乱地糅合在一起号称Java EE。读者参考本书的架构,完全可以身临其境地感受企业实际开发,并可迅速提升读者对系统架构设计的把握。
本书写给谁看
如果你已经掌握Java SE内容,或已经学完了《疯狂Java讲义》,而且有一定的JSP、Servlet基础,那你比较适合阅读此书。
如果你已经学完《轻量级Java EE企业应用实战》一书,阅读本书将非常合适。
如果你对JSF、EJB 3、JPA有所了解,但希望掌握它们在实际开发中的应用,本书也将非常适合你。
但如果你对Java的掌握还不熟练,或对JSP、Servlet一无所知,则建议遵从学习规律,循序渐进,暂时不要购买、阅读此书。
2010-6-20
书名:经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发
作者:李刚 编著
ISBN 978-7-121-11534-9
出版日期:2010年8月
定价:79.00元(含光盘1张)
开本:16开
页码:676 页
作者简介李刚,从事近10年的Java EE应用开发,现任传智播客广州中心教学总监。
疯狂Java实训营创始人,疯狂Java体系图书作者。曾任LITEON公司的J2EE技术主管,负责该公司的企业信息化平台的架构设计。
曾任广州电信、广东龙泉科技等公司的技术培训导师。曾兼任广东技术师范学院计算机科学系的兼职副教授。
2007年3月26日的《电脑报》专访人物。
培训的学生已在华为、立信、普信、网易、电信盈科等公司就职。
国内知名的高端IT技术作家,已出版《疯狂Java讲义》、《轻量级Java EE企业应用实战》、《疯狂Ajax讲义》、《疯狂XML讲义》、《经典Java EE企业应用实战》、《Struts 2.1权威指南》、《Ruby On Rails敏捷开发最佳实践》等著作。其中疯狂Java体系图书都是已经得到广泛的市场认同,并多次重印的畅销图书,并被多家高校选作教材。
内 容 简 介
本书是《轻量级Java EE企业应用实战》的姊妹篇,《轻量级Java EE企业应用实战》主要介绍以Spring+Hibernate为基础的Java EE应用;本书则主要介绍以EJB 3+JPA为基础的Java EE应用。EJB 3、JPA规范都属于Sun公司所制订的Java EE规范,因此把基于EJB 3+JPA的应用称为经典Java EE架构,目前这种架构在Java开发领域也有极大的市场占有率。
本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。所使用的应用服务器是JBoss 5.1和WebLogic 11g,详细介绍了这两种应用服务器的安装和使用,以及如何在两大主流服务器上安装、部署Java EE应用。
本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境,包括安装JBoss、WebLogic应用服务器,以及如何使用SVN、NetBeans等。第二部分详细讲解了JSF RI、JTA、JNDI、RMI、JMS、JavaMail、EJB 3的Session Bean、Message Driven Bean、JPA、JAX-WS 2、JAAS等Java EE知识,这部分知识以JSF+EJB 3+JPA整合开发为重点,通过使用NetBeans IDE工具上手,带领读者逐步深入JSF+EJB 3+JPA整合开发。这部分内容是笔者讲授“疯狂Java实训”的培训讲义,也是本书的重点部分。第三部分提供了一个JSF+EJB 3+ JPA整合开发的项目:电子拍卖系统。这个项目包括5个实体,这5个实体之间具有复杂的关联关系,而且业务逻辑也相对复杂,希望让读者理论联系实际,真正将JSF+EJB 3+JPA整合真正运用到实际开发中。该案例采用目前最流行、最规范的Java EE架构,整个应用分为JPA实体层、EAO层、业务逻辑层、MVC层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了IDE无关的、基于Ant管理的项目源码,也提供了基于NetBeans IDE的项目源码,最大限度地满足读者的需求。
本书没有介绍JSP、Servlet等Java Web的相关内容,但这些知识是阅读本书的基础,如果读者还没有相关知识,建议先阅读《轻量级Java EE企业应用实战》中相关知识。如果读者在阅读此书时遇到了技术难题,可登录http://www.crazyit.org发帖,笔者将会及时予以解答。
阅读本书之前,建议先认真阅读笔者所著的《疯狂Java讲义》一书。本书适合有较好的Java编程基础,或有较好的JSP、Servlet基础的读者阅读。尤其适合于对JSF、EJB 3、JPA了解不够深入,或对JSF+EJB 3+JPA整合开发不太熟悉的开发人员阅读。