词条 | 软件iBATIS框架的源码剖析 |
释义 | 基本信息书名:软件iBATIS框架的源码剖析 作者:任钢 出版社: 电子工业出版社 ISBN: 9787121108723 装帧:平装 页码: 510 开本: 16 中文:汉语 产品标识:asinB003R1ZCZW 内容简介《软件iBATIS框架的源码剖析》适用于软件设计师、架构师和一些有较好Java基础的开发人员,既可以作为软件iBATIS的学习指南,也可以给软件架构师在设计方面进行参考。软件iBATIS是一种比较流行的ORM框架,《软件iBATIS框架的源码剖析》全面介绍其结构体系和分析其源程序代码,该框架的核心包括两个组件,一个是软件iBATISDAO,另一个是软件iBATISSQLMap。《软件iBATIS框架的源码剖析》分为三个部分,第一部分是介绍软件iBATIS的一些基础知识;第二部分是介绍软件iBATISDAO的框架结构及其实现;第三部分是针对软件iBATIS的底层平台软件iBATISSQLMap进行分析。其中第三部分是主要内容:首先剖析了SQLMap是如何读取配置信息的;其次说明了SQLMap引擎的实现,勾画出软件iBATISSQLMap的框架结构,描述其核心实现机制和主要实现步骤;再次说明SQLMap如何用来实现数据库处理,包括事务管理、数据库连接池,以及SQLMap中Mapping的实现,这也是软件iBATIS不同于其他ORM框架的独创性实现;最后就是一些常用的实现,如TypeHandler类型转化和软件iBATIS常用工具的实现。在源码剖析过程中,《软件iBATIS框架的源码剖析》采用了代码注释、UML分析和设计、GoF设计模式抽象和归类、代码跟踪和案例的讲解和说明。其目的是让读者全方位地了解软件iBATIS的实现框架和实现手段。一方面让读者理解开发者的思路,另一方面也是帮助读者在实际工作中能应用这些策略、方法和编程技巧。 编辑推荐《软件iBATIS框架的源码剖析》由电子工业出版社出版。 作者简介任钢,软件硕土,高级工程师,从事了十多年的企业级应用开发,是国家认证的系统分析师、信息项目管理师和系统架构设计师,在学术刊物上发表了近10篇论文,曾担任多年的中软创新公司的技术总监和部门总监等,现任文思创新公司的技术总监。 目录第一部分软件iBATIS的基础知识 第1章软件iBATIS概述 第2章相关的技术背景和基础知识 第3章安装和配置软件iBATIS源码 第二部分软件iBATISDAO框架源码剖析 第4章软件iBATISDAO体系结构和实现 第三部分软件iBATIS的底层平台——软件iBATISSQLMap的分析 第5章软件iBATISSQLMap体系结构和剖析 第6章SQLMap配置信息的读取 第7章SQLMap引擎实现框架 第8章SQLMap数据库处理 第9章SQLMap中Mapping实现 第10章SQLMap缓存管理和实现 第11章TypeHand1er类型转化 第12章软件iBATIS常用工具的实现 附录一第4章dao-2.dtd 附录二第5章Sq1MapConfig.xm1的DTD结构 附录三第5章Sq1MapConfig.xm1的XSD结构 附录四第5章Sq1MapMapping.xm1的DTD结构 附录五第5章Sq1MapMapping.xm1的XSD结构 附录六第11章JDBCTypesMappedtoJavaTypes 附录七第11章JavaTypes 附录七:MappedtoJDBCTypes 附录八第11章JDBCTypesMappedtoJavaObject 附录九第11章JavaObjectTypesMappedtoJDBCTypes 附录十第11章JDBCTypesMappedtoDatabase-specificSQLTypes 参考文献 序言搞IT技术已经有十多年的历史了,接触Java语言也有一定的时间了。为什么到现在才要写这本书呢?几年前我开发过一个ORM模型框架,当时的思路居然与软件iBATIS框架有一些类似(可见英雄所见略同)。于是,为了更好地实现这个ORM框架,我仔细阅读了软件iBATIS框架的源码。在阅读过程中,由于软件iBATIS框架代码层层叠叠、峰回路转、跌宕起伏,为了理清框架的主要思路和核心实现方式、加快理解速度和加深理解深度,我用PowerDesigner画了一些UML图,并做了一些阅读笔记和备忘录。一个月下来,基本上从总体架构上了解了软件iBATIS框架的实现。这时候阅读笔记和备忘录已大约积累了好几万字。我想,如果能把这些笔记和备忘录进行系统化、简单化、章节化的整理,就可以给更多软件iBATIS爱好者使用。同样,这些学习心得对软件架构师、软件开发工程师等都非常有价值,所谓它山之石,可以攻玉。于是,我决定写一本关于软件iBATIS框架的源码剖析的书籍。而在实际操作中,我觉得在讲述软件iBATIS源码的同时,已经涉及很多关于ORM的内容,也有一些Java的基础处理和编程技巧,甚至还包括一些经典的设计模式。 在国内介绍和讲述开源软件的书可谓是琳琅满目,不胜枚举。但这些书基本上都归纳为应用型或工具型,更趋向于软件的使用说明或使用指南之类。而且,在全球这么多开源框架代码中,我国做出的贡献还是非常少的。分析原因,主要是我们热衷于拿来主义,直接就用,能解决问题就行。而对于源码,也许只有在使用过程中遇到了障碍,为了解决问题才做一些源码阅读和分析,这也是国内许多人很少去分析开源框架源码的原因,而且介绍开源软件实现的书籍也是凤毛麟角。我写这本书的目的,就是希望在这方面能与大家多分享一些学习心得和体会。 对于开源代码,能读懂并搞明白是一回事。但是理解了源代码,把这些东西用文字表述出来,让别人也能理解却是另一回事。我觉得后者的难度远远大于前者。当然,如果仅仅是简单地介绍软件iBATIS框架,我相信只要有几句话就能说清楚。但是要把一个实现框架说得条理清晰、层次鲜明,这不仅仅要求有一定的技术背景,还要有文字语言的表达和掌控能力。我用一个月时间就基本上搞明白了软件iBATIS框架的内容,但是要把它写出来,的确非常头疼。有的时候要非常细致地去推敲,因为很多琐碎的细节决定了整个框架的核心,这需要有一定的耐心和抽象能力。同时阅读和理解程序源码是一种实践性非常强的工作,所谓读书破万卷,下笔如有神,这是一个真理。但若阅读并理解了几十万行程序代码后,再来编写程序代码,那基本上就可以非常有章法并有一定的深度了。事实上,我国大学目前计算机教育的水平是基础性质的,对于如何去阅读源码没有相关的课程来进行讲授。对于源码的分析有什么办法、手段和策略,即如何把那些复杂的程序代码用简单的语言表达出来,让别人能迅速地理解并掌握,我国的教育还是做得不够的,也没有专人或学者来搞这方面的研究。但笔者觉得这项工作是非常重要,而且也是很有意义的。事实上,每个开发人员和设计人员在实践中都有自己的一套读取和分析源码方法。当然这也是仁者见仁、智者见智的事。我的方法和手段只是其中之一而已。所以说我在编写这本书时对源码的剖析只是做了一些非常粗浅但是有意义的尝试,以试图弥补国内软件行业在这方面的缺陷。 文摘1.面向对象分析的特征 面向对象分析(Obiect Oriented Analyzing,简称OOA)的核心是对象的概念,它通过对所研究的事物进行高度的抽象得到对象,每个对象都真实地反映了它所对应的事物,事物的行为用其显露的函数接口来表征,具有相同结构、相同操作并遵守相同约束规则的对象聚合成对象类。对象类间具有层次结构关系,处于上层的对象类称为父类或基类,下层的类称为子类。OOA方法具有抽象性、封装性、继承性、多态性四大特点。 ①抽象性(Abstract) 抽象是指强调实体的本质、内在的属性。在系统开发中,抽象指的是在决定如何实现对象之前,对对象的意义和行为进行概括。使用抽象可以尽可能避免过早考虑一些细节。类实现了对象的数据(即状态)和行为的抽象。同时抽象忽略一个主题中与当前目标无关的那些方面,以便充分地注意与当前目标有关的方面.抽象包括两个方面:一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者当作单个实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作进行修改和观察。 ②继承性(Inheritance) 继承是一种联结类的层次模型,能直接获得已有的特性而不必重新定义,并且允许和鼓励类的重用。它提供了一种明确表述共性的方法,在定义一种新的对象时,只需指明它具有哪些类定义以外的新特性,而不必定义新对象的全部特性,保证了软件的可重用性,使对象之间具有传递作用,子类能继承各层父类的全部语义特性。也就是说,一个类的数据和方法可以传给另一个类,对象的一个新类可以从现有的类中派生,这个过程称为类继承,它是面向对象语言中可重复使用的基础。派生类继承了原始类(基类)的特性,同时可以修改或增加新的特性。这体现了一般和特殊的关系。继承性很好地解决了软件的可重用性问题,有利于提高软件的开发效率。 ③封装性(Encapsulation) 封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包装起来,实现信息的隐蔽,禁止其他对象直接访问对象的内部状态,保证了对单元数据的封装和隐藏,使得每个单元对外部都有清晰的边界,我们只看到封装界面的信息,对数据的访问只能通过已定义的界面。具体地说,封装就是隐藏信息,就好比我们会操作电脑,无须知道电脑内部结构的组成。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。由于数据和代码封装在对象中,不易破坏,封装的对象保证系统模块化不会互相影响。 封装性是保证软件部件具有优良模块性的基础。面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护.对象是封装的最基本单位。封装防止程序相互依赖性而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。