开源是当前软件开发的热门话题,它也正在促进着软件事业的发展。当前,开源框架层出不穷,它为用户提供了通用的解决方案,但也提高了用户的学习难度。开源是一把“双刃剑”,一方面共享了资源,提供了一种基于开源框架的开发模式,缩短了软件的开发周期,另一方面,它对用户也提出了更高的要求,提高了学习入门的门槛。
对开发人员来说,一方面要努力学习新的开源框架,另一方面,要为新的开源框架被淘汰做好准备,而且要学会迎接另一个开源框架的诞生。如此下来,程序员的日子是多么的“辛苦”就可想而知了。
开源世界是一个大家庭,Eclipse也是开源世界的一员,但它远远超越了普通开源项目的概念。Eclipse本身就是一个大舞台,它的内容太丰富了,它的设计太经典了,它可以使用的第三方资源太多了,以至于不跟上Eclipse的步伐,就有可能落伍了。
在Eclipse中,开发人员不但可以使用现有的开源项目,还能构建基于Eclipse的开源项目,可以毫不夸张地说,在Eclipse中“只有想不到的,没有做不到的”。
Eclipse不仅是一个Java的开发环境,更重要的是它自身是一个可以扩展的平台,在这个平台上,用户能够创建自己的应用。Eclipse是纯Java开发的,它有着天然可以跨越不同操作系统的优势,Eclipse中的插件可以不做任何的修改,就能够移植到其他的操作系统中。
在开源框架大行其道的日子里,在Eclipse风风火火的环境下,程序员可以做什么呢?
本书将介绍几个常用的开源框架,有Web应用框架Struts、数据持久化框架Hibernate、应用整合框架Spring及代码生成框架Velocity等,通过对这些框架的学习,可以大大降低开发人员入门的学习门槛,同时也为其他开源框架的学习奠定了基础。
本书还将介绍Eclipse相关开发技术,主要包括SWT/JFace、Eclipse插件开发和GEF图形编辑框架。结合对开源框架的认识,最后将利用Eclipse开发技术,构建一个基于Eclipse平台的Web应用开发工具,希望通过此开发工具能够管理开源框架的应用,快速构建Web应用开发环境,从而提高程序员的开发效率。
开发工具可以集成开源框架,构建通用开源框架的开发环境,使用户可以不用太多关心框架的实现细节。开发工具已经可以完全独立地在Eclipse中运行,而且已经实现了基本的特征。本书中开发工具并没有完全实现,本书只算是开发工具研究与实现的一个开始,希望广大的读者都能够参与进来,为提高程序员的开发效率和改变程序员的开发方式而努力,也为开源事业尽自己的一份力。
本书的组织结构和主要内容
本书内容深入浅出,首先介绍了Java中比较流行的几种开源框架,以及如何在Eclipse中使用这些开源框架,其次介绍了Eclipse的实现技术,包含SWT/JFace及插件开发,最后以Eclipse技术为基础,对支持开源框架提供了一套解决方案,以Eclipse平台为基础开发一套快速构建开源框架应用的开发工具。
本书把要在Eclipse中开发的一套插件统称为“Web应用开发工具”,实际上它可以构建其他的应用。通过开发工具,可以使开源框架应用变得更简单,可以使开发人员不用太多关心框架的实现细节。
本书内容分为3个部分:
第1部分为第1章到第12章:介绍Eclipse及开源框架的应用。
第1章:介绍了Eclipse的一些概念、插件安装方式、Eclipse中的常用快捷键。这些不但是Eclipse中Java开发的基础,也是插件开发的必修课。
第2章:介绍了单元测试与重构的概念,以及其在Eclipse中的实施,使用户能够更自信地编码,提高代码的质量。
第3章:介绍了Web应用中常用的相关技术,包括Servlet、JSP、标签、XML及AJAX,每一种技术都可以成为一个单独的领域。在本章用户需要了解相关的实例,为后面章节的学习做准备。
第4章:介绍Web应用框架Struts,Struts框架具有组件的模块化、灵活性和重用性的优点,同时简化了基于MVC的Web应用程序的开发。
第5章:介绍Struts开发实例——购物车,本章通过Struts开发了一个虚拟购物车的Web应用。虽然此应用还不完善,但也勾画出了一个Web应用的几层关系及数据的流向,用户可以修改这些关系来适应自己的需求,开发出更适合自己要求的系统。
第6章:介绍了数据库的一些基本常识,了解SQL语言的基本语法和如何通过JDBC操作数据库。
第7章:介绍了对象持久化框架Hibernate。Hibernate是功能强大的O/R Mapping的工具,它提供Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射。通过Hibernate,开发人员能够以面向对象的思维去处理关系数据库的问题,而不用被JDBC简单的数据访问接口所束缚。
第8章:介绍了Hibernate开发,通过一些实例,重点让读者知道如何使用Hibernate进行开发。
第9章:介绍了应用整合框架Spring,引导读者理解Spring的基本概念,并通过实例介绍IOC和AOP的技术。
第10章:介绍了通过Spring整合Web应用,本章通过一个简单用户管理模块,介绍如何用Spring整合Struts和Hibernate。
第11章:介绍了代码生成框架Velocity。Velocity 提供了通用的、开放源代码的模板解决方案,可以在报告生成和数据转换应用程序中独立使用,本章将结合实例,介绍模板的技术及模板语言VTL。
第12章:介绍了通过ANT构建AppFuse应用,其中包括ANT语法及ANT使用,最后通过使用ANT来构建AppFuse应用。
第2部分为第13章到第17章:主要介绍Eclipse的相关技术,包括SWT/JFace和插件开发。
第13章:本章介绍了开发SWT的应用程序及一些常用的SWT组件,这些是SWT开发的基础,而SWT又是插件开发的基础,掌握这一章的内容对后面的学习会有较大的帮助。
第14章:本章介绍了SWT中常用的事件和布局,对开发SWT应用是非常有用的。SWT中的事件和布局不止本章所介绍的这些,但使用的方式都大同小异,用户可以定义自己的实现方式。
第15章:本章主要介绍JFace中的Viewer组件与对话框技术。JFace中封装了Viewer组件实现,用户可以使用Viewer组件提供的强大功能。另外对话框在SWT开发中也是不可缺少的,SWT封装了常用对话框的实现,用户也可以自定义实现自己的对话框。
第16章:本章主要介绍Eclipse插件开发技术。Eclipse最有魅力的地方就是它的插件体系结构,在这个体系中重要的概念是扩展点(extension points)。扩展点是Eclipse的精华所在,本章将会介绍Eclipse中常用扩展点的实现。
第17章:本章主要介绍图形编辑框架GEF。GEF是一个完善的图形编辑框架,它提供了图形编辑的解决方案,用户可以通过它的机制构造出功能非常强大的图形编辑器。但GEF还是比较复杂的框架,在提供了图形编辑的各个环节松耦合的灵活性之时,也增加了用户必须了解各环节实现的学习时间。
第3部分为第18章到第22章:介绍基于Eclipse的开发工具。
第18章:本章主要介绍基于Eclipse的开发工具扩展点的实现,目的是要开发出一个基于Eclipse平台的快速开发Web应用的产品,并把它作为开源项目的一部分,也欢迎读者能够参与其中。
第19章:本章介绍了一个UML模型编辑器的实现,程序实现了GEF编辑器所具备的基本功能,编辑器数据并通过Ecore模型保存。
第20章:本章介绍了业务对象模型及流程定义模型,描绘了以模型驱动的开发方式的一种解决方案,并提供了代码生成插件的基本实现。
第21章:本章介绍了开发工具实现的其他一些功能,包括通过模型生成数据库表结构、发布工程及从数据库表导入生成业务对象模型。
第22章:本章介绍Eclipse的一些底层技术的实现。开发工具要充分发挥Eclipse潜能,还有很多的事情要做,可以说只要想得到的,在Eclipse中都能够实现。要完善开发工具的功能,还要用到Eclipse中很多实现的机制,笔者相信研究这些实现机制对开发人员编程能力的提升将会有很大的帮助。
如何阅读本书
本书的所有代码都是可以在Eclipse中运行的,所有代码都按章节组织,在附书光盘上可以找到。在每一章节的例程代码中,为了节省篇幅没有加入Java类的package包名和import类,读者最好能够把本书光盘的源代码导入到Eclipse中,对照着本书介绍的内容学习,效果会比较好。
本书介绍了3个部分,其中开源框架和Eclipse插件开发技术是相互独立的,而开发工具是建立在开源框架和Eclipse插件技术之上的。
开源框架又分为几部分,主要包括Web技术、数据库技术及中间层技术,这几个部分也有一定的独立性,读者如果对某一部分比较感兴趣,没有必要从第1章开始学习。
希望本书能够成为您快速学习开源框架和Eclipse技术的渠道。本书的实例比较丰富,而且完全可以在Eclipse中运行,读者可以按如下顺序学习本书的内容。
(1)了解某一部分的结构和大概内容。
(2)把这部分源代码的工程导入到Eclipse中。在“Package Explorer”中按鼠标右键→选择import菜单命令导入Eclipse工程(Existing Projects into Workspace选项)。
(3)了解代码运行的前提条件,例如数据库配置、Web容器配置等。
(4)按照本书介绍的步骤学习,并对照本书介绍的内容在Eclipse中运行源程序。
(5)对照本书介绍的内容,跟踪代码。
(6)深入理解代码,并按自己的想法进行修改,确保对这部分代码已经理解。
本书的代码导入Eclipse中都可以运行,但有些代码运行前需要配置相关的条件,主要有如下一些:
l Web应用章节需要把工程发布到Tomcat中,所以要先安装Tomcat容器,另外和Web应用相关的工程为Tomcat工程,还需要安装Tomcat插件。注意两点:在工程导入Eclipse后,需要通过Tomcat插件更新Tomcat上下文的配置(update tomcat definition菜单);要在Tomcat插件中设置好Tomcat服务器的设置,否则部分项目可能会编辑无法通过,或者无法在Tomcat中运行。Tomcat插件将在第3章中介绍。
l 数据库框架介绍的章节,要先安装MySQL数据库,还需根据配置文件中数据库的设置,先创建数据库和表。
l 图形编辑框架应用的章节,要先安装图形编辑框架插件GEF。
l 程序的运行最好在Eclipse 3.2以上的版本中运行。本书的代码在Eclipse 3.2.1上开发测试,可以在Eclipse 3.3下运行,大部分代码能够在Eclipse 3.1以上版本运行。Eclipse的下载地址为“http://www.eclipse.org”。
l 如果用户在Eclipse 3.3下运行本书的源程序,SWT程序的运行方式和Java程序运行方式相同。
l 本书第18章到第21章的代码是一个整体,插件之间存在依赖关系,可以把所有的插件工程一次性导入Eclipse中,否则可能会有编译错误。
本书所有代码都已经加上了比较详细的注释,可以根据书的内容,结合源代码,更方便理解。虽然笔者对本书的代码都进行了严格的测试,但读者学习的过程中可能还是会出现一些问题,主要可能是开发环境没有配置好,如果学习过程中有什么问题,可以随时跟我联系,E-mail:ganshuman@126.com。
|
|
读者要学会导入Eclipse工程,导入的工程环境的设置要和笔者开发环境基本一致,这样可以尽量减少因为开发环境不同而造成的问题。 |
这本书是否适合您
如果您是计算机专业的学生,或者是刚参加软件开发工作的人员,苦于没有开发实践的经验,对众多的开源框架了解甚少,希望对这些框架快速入门,那么本书适合您。
如果您有一定的Java开发经验,但希望快速了解一些常用开源框架的开发,而不想在搭建框架运行环境和了解框架的实现细节上花太多的时间,那么本书也适合您。本书为所有介绍的开源框架都量身定做了可运行的代码,通过简单的配置即可运行。
如果您是Eclipse插件开发人员,或者希望从事Eclipse插件开发工作,那么本书适合您。本书提供了大量的SWT/JFace的开发实例和插件扩展点的实现,最后还会通过开发工具的开发,深入了解插件的开发技术,是难得的Eclipse开发的锻炼机会。
如果您希望深入了解某些开源框架的实现,全面掌握开发的底层技术,本书并不适合您。本书写作的目的不在于使读者成为所有开源框架的精通者,而是希望介绍一些开源框架,使读者能够从中找到一些规律,从而在学习其他开源框架时能够少走弯路。
如果您是一位开发平台的专家,本书也未必适合您,但本书提供了在Eclipse中实现开发平台的可行性,并提供了基本实现,对今后的开发可能会有一些帮助。
本书介绍的内容比较多,实例比较丰富,通过开发工具的介绍把前后两部分有机地联系起来,而且所有代码完全可以在Eclipse中运行,可以作为Java学习的培训教程。
本书光盘
附书光盘包括书中案例源代码。
为了能够更好地阅读本书,读者还需下载如下第三方的JAR包,以及源程序依赖的第三方的开源插件:
(1)Tomcat:Web服务器,本书源程序使用的Tomcat版本为“jakarta-tomcat-5.0.28”。
下载地址:“http://tomcat.apache.org/”。
(2)MySQL:数据库服务器,本书源程序使用的MySQL版本为“mysql-5.0.27-win32”。
下载地址:“http://www.mysql.com/”。
(3) Eclipse:开发平台,本书源程序使用的Eclipse版本为“Eclipse3.2.1”,所有代码在Eclipse3.3.0下测试通过。
下载地址:“http://www.eclipse.org”。
(4)插件EMF,参考版本“emf-sdo-xsd-SDK-2.2.2.zip”。
下载地址:http://www.eclipse.org/modeling/emf/
(5)插件GEF,参考版本“GEF-ALL-3.2.1.zip”。
下载地址:http://www.eclipse.org/gef/
(6)插件HibernateSynchronizer,参考版本“HibernateSynchronizer-3.1.9.zip”。
下载地址:http://sourceforge.net/projects/hibernatesynch/
(7)插件sqlexplorer,参考版本“net.sourceforge.sqlexplorer_2.2.4.zip”。
下载地址:http://sourceforge.net/projects/eclipsesql/
(8)插件EclipseHTMLEditor,参考版本“tk.eclipse.plugin.htmleditor_2.0.4.zip”。
下载地址:https://sourceforge.jp/projects/amateras
(9)插件StrutsIDE,参考版本“tk.eclipse.plugin.struts_2.0.4.zip”
下载地址:https://sourceforge.jp/projects/amateras
(10)插件TomcatPlugin,参考版本“tomcatPluginV32beta3.zip”
下载地址:http://www.eclipsetotale.com/tomcatPlugin.html
Eclipse、Tomcat和MySQL都是非常流行的软件,在开源社区的使用非常广泛。有了这几个软件配合本书光盘的源代码,就可以搭建本书的源程序运行的环境。
感谢
最后,我要感谢妻子无微不至的照顾,使我有精力来完成此书,同时也要感谢我们现在开发工具组团队的所有成员,谢谢你们给我开发的灵感和工作的激情。
由于时间仓促,加上本人水平有限,在写作过程中难免会有不当之处,请读者不吝批评指正。
编 著 者






