服务热线

029-87595239

当前位置:首页 > 自学课程 >

JAVA开发课程

目前 Java 可以说是产业界和学术界最热门的语言,许多读者都很急切想把 Java 学好。除非像电影「骇课任务」(Matrix)一样能够把需要的专业技巧下载到脑海(女主角只花了几秒下载资料,就马上具备飞行员的技巧),或是武侠小说中的运功传送内力的方式,否则花上一段时间苦学是免不了的。花时间,不打紧,就怕方法错误,事倍功半。我认为,学习 Java 包括了下列的范畴:
Q4ScZ'?­QJAVA
中文站社区门户/S?-]xW
* 认识 Java 的原理
p8R5@IZ@Kr* 学会 Java 语言 JAVA中文站社区门户 jf!Q'S M(J
* 对象导向的思维 

学习 Java 的原理 JAVA中文站社区门户Tpi.{
I+n,R

了解 Java 的原理,才有可能真正体会 Java 的一切,学习任何事情,只要能掌握原理,就会比较顺利。我发现许多人使用 Java 已经逾年,却连 Java 最基本的特质都不清楚。
0`k


wo(O T(UJAVA中文站社区门户U/w1U+@ {*D c-j7n ~
一般来说,信息系毕业的学生,对于信息的新事物学习的速度,会比其它科系来得快,就是因为四年的教育为他们奠定了学习新事物的基础,这也是信息系课程的价值所在。
sW Lq.A


|~JAVA中文站社区门户d{v"SO2J
除非你受过的基础训练够扎实,否则在学习或使用 Java 的过程中,你一定会需要参考到这些信息系学科的知识。我建议各位可以在闲暇之余,把信息系课本的书拿来读一读。这是治本之道,绝非立竿见影的特效药,必须要有耐心。
i:O&f fK[$b
U#\_
D5O
学习 Java 语言
-A)e`%pC
B
学习 Java 语言很简单,毕竟 Java 语言也只包含五十多个关键词(keyword)与几十个算符(operator),再加上 Java 语法(syntax)也很简单,所以一般人可以很快就学会 Java 语言。危险的是,很多人认为已经完全掌控 Java 语言,但其实对于内部的运作机制仍不能掌握,这些盲点有时候会让你无法完全掌控 Java 语言。克服这些盲点的方式是看「The Java Language Specification, 2nd Ed.」(没有中文版)来彻底弄懂 Java 程序语言,并看「Inside the Java Virtual Machine, 2nd Ed.」(有中文版,但翻译得@#%$)来彻底掌握 Java 虚拟机器的运作方式。 JAVA中文站社区门户.o
wW|x'f-R5H1_


+R­[:@'E[1]B ]8x0r u(I
学习对象导向的思维 JAVA中文站社区门户&D
oV$[
px*{

学会了语言,并不代表就可以设计出好的对象导向系统架构。想要成为对象导向的专家,往往需要: JAVA中文站社区门户-qJe6lm.`t

([ TWQ‑w6{'x#[!EI*
多看相关的书,特别是 Design Pattern Refactoring 的书。 JAVA中文站社区门户 D"K5H[1]c‑t9s f2`
*
多观摩别人的程序(例如 Java API design implementation
6M5q/@@rFD*
多写程序 JAVA中文站社区门户&YO;O/B1Rtd
JAVA
中文站社区门户7@.`
` FH:@c6og
x

学习 API

D?-u,@:PM*g:~ u
学会 Java 语言之后,还需要学会一些 API 才能写出有用的程序。Java API 非常多,必须规划好一个学习路径,才不会在浩瀚的 API 大海中迷失。必备的 API 包括了:IONew IOCollection FrameworkNetworkRMIJAXP... 等。




* API

但是一些内容我认为是必须掌握的,否则不可以熟练运用java,也不会使用就很难办了。

1、java.lang包下的80%以上的类的功能的灵活运用。

2、java.util包下的80%以上的类的灵活运用,特别是集合类体系、正规表达式、时间、属性、和Timer.

3、java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。

4、java.math包下的100%的内容。

5、java.net包下的60%以上的内容,对各个类的功能比较熟悉。

6、java.text包下的60%以上的内容,特别是各种格式化类。

7、熟练运用JDBC.

8、java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java.

9、AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印。

10、Swing的基本内容,和AWT的要求类似。

11、XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。

 

至于其它的 API,就看你的需求而定,大致上分成: JAVA中文站社区门户{QP,cr Aa‑yJ-O
JAVA
中文站社区门户!Yj@­SB g
* GUI
类:JavaBean -> Swing -> JavaHelp -> Java2D -> Image IO -> JAI -> Java 3D ...
.E0^Ml rh* Enterprise
类:JDBC -> JDO -> Servlet -> JSP -> EJB -> JMS -> JTA/JTS...
s%f J)xFS
IXl
* J2ME
类(这一类不是我的专长,无法提供学习顺序建议) JAVA中文站社区门户P_+h~


YDq!M
JAVA
中文站社区门户


`7L/yW8{3y,U}3hO



 

1. JavaEE基础与加强

 

Java课程

第一阶段 

计算机基本原理,Java语言发展简史,Java开发环境的搭建,体验Java程序的开发,环境变量pathclasspath的设置,Java程序的执行过程,Java反编译工具介绍。计算机常用进制二、八、


十六的介绍,以及它们与十进制之间的相互转化,ASCII码。

 

Java语法格式,常量和变量,变量的作用域,函数和函数的重载,运算符,程序流程控制,数组和操作数组的类。针对数组的常用查找、排序算法原理,以及其Java实现。

项目练习与阶段测试 BubbleSortSelectionSortInsertionSortShellSortDataSorter等各种数据处理技术。传智播客Java第一阶段测试题和阶段复习

 

第二阶段 

对象的本质,理解面向对象,类与对象的关系,在程序中如何应用面向对象的思想解决问题。

 

如何设计类,设计类的基本原则,类的实例化过程,类的细节:构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc介绍。

 

对象的三大特性:封装、继承和多态,以及相应的Java实现:子类对象的实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析。对象的多态性:子类和父类之间的


转换、抽象类和接口在多态中的应用、多态带来的好处。Extensibility的理解 Extensibility的运用。常用设计模式:SingletonTemplateStrategy模式。

 

项目练习与阶段测试 经典算法:奶牛问题、约瑟夫环问题,传智播客Java第二阶段测试题和阶段复习

 

 

第三阶段 

JavaAPI介绍、Eclipse的安装和使用、StringStringBuffer、各种基本数据类型包装类,SystemRuntime类,DateDateFomat类等。

 

Java Collections FrameworkCollectionSetListArrayListVectorLinkedListHashsetTreeSetMapHashMapTreeMapIteratorEnumeration等常用集合类API

 

IO概念,FileFileRandomAccess类,字节流InputStreamOutputStream,字符流ReaderWriter,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,


计算机编码。

 

递归程序,Java的高级特性:反射、代理和泛型。

 

项目练习与阶段测试 Windows Disk Tree项目,传智播客Java第三阶段测试题和阶段复习

 

 

第四阶段 

多线程的概念,如何在程序中创建多线程(ThreadRunnable),线程安全问题,线程的同步,线程之间的通讯、死锁。Java图形用户介面编程(AWTSwing)Java的事件处理机制,Java


Applet简介。

 

Java网络编程,网络通信底层协议TCPUDP,以及其相应的Java实现:DatagramSocketDatagramPacketServerSocketSocket编程。网络通信常用应用层协议简介:HTTPSMTPPOP3


MIME,以及WEB服务器的工作原理。编写网络聊天程序。

 

Java正则表达式API详解及其应用。

项目练习和阶段回顾 Java File Transfer,结合了P2P技术的Java文件传输项目。

传智播客Java第四阶段测试题和阶段复习、Java综合复习和测试

 

 

JavaScript课程

JavaScript课程       HTML语言,HTML语言背景知识、HTML全局标签、格式标签、文件标签、超链接标签、图像标签、客户端图像地图、表格标签、帧标签、表单标签、头元素、分区标签。CSS


绍、CSS的设置方法、样式选择器、样式属性介绍,Dreamweaver的使用。

 

JavaScript编程,JavaScript语法、运算符、流程控制、函数、数组、对象、JavaScript的内部对象,JavaScript中专用于操作对象的语句。DHTML编程,理解DOM树,DOM对象,常用DOM对象


的属性、方法和事件,编写事件处理程序、使用DOM操作HTML文档、遍历文档树上的节点、搜索文档中特定的元素、修改文档内容、往文档添加新内容、使用DOM操作XML文档。

 

DHTML编程的实用案例:网页换肤、HTML表格排序等,以及JavaScript中的正则表达式及其应用。

综合应用  商业级网页制作、Java版聊天系统。

 

网络爬虫,用Java制作抓网络邮箱的爬虫程序,程序能自动连接网络并从一个或若干初始网页的URL开始,在抓取网页的过程中,不断自动页面中的邮箱地址,并从当前页面上抽取新的URL


入队列,直到满足系统的一定停止条件。

 

 

 

2. JavaEE3G/4G

掌握JavaWEBjdbcOracle数据库、StrutsHibernateSpring3G/4G Android开发技术的实战与理论双结合型工程师,并重点讲解WebService、工作流、搜索引擎全文检索、EJB3.0JPAAndroid等众多JavaEE热门技术。通过本课程多个真实项目的训练,学员还可掌握软件架构设计思想、搜索引擎优化、工作流技术、缓存系统设计、网站负载均衡、系统性能调优等软件编程高级技术

第一阶段:JAVA基础增强/Oracle+MySql数据库+JDBC开发技术+DAO封装

 

核心技术课程       java基础加强:增强for循环、可变参数、枚举、反射、内省、beanutils工具、注解、泛型、类加载、代理、装箱/拆箱、静态引用等Java新技术和高级技术。

OracleMySql数据库:OracleMySql数据库基础管理、SQL 语言、PL/SQL语言、数据库设计范式;数据备份与移植;触发器、存储过程;数据检索技巧,视图,触发器,函数,存储过程,游标等技术的使用。大对象的读写技巧,数据优化技巧,分区与索引。MySql数据库,常见问题分析与设计。

 

JDBC开发技术:JDBC ConnectionStatementPreparedStatementCallableStatementResultSetScrollable RSUpdatable RSRowSet and DataSource、数据库连接池、JDBC TemplateORM思想与DAO封装等。

 

第二阶段:JavaWEB+JavaMail开发技术+项目案例+网上在线支付

 

核心技术课程       JavaWEB开发核心基础:XML的概念与基本作用、XML的基本语法、XML的约束模式、DTDXML Schema、名称空间。WEB服务器的工作原理、Tomcat的安装与启动运行、Tomcat的体系结构、在Tomcat中配置WEB虚拟目录与发布WEB应用程序的各种方式、设置目录的默认网页、使用Tomcat配置虚拟主机。 HTTP协议详解,HttpServletResponseHttpServletRequest的应用, SessionSession域的应用,Session跟踪机制,Session实现购物车,利用Session防止表单重复提交,MD5算法及其应用,Session的持久化。

 

JSP技术:JSP运行原理、JSP中的9个内部对象和作用、JSP表达式、JSP脚本片段、JSP声明、JSP注释、EL表达式简介。page指令及其重要的属性:importsessionerrorPageisErrorPagecontentTyppageEncodingisELIgnored、在web.xml文件中设置全局错误处理。JSP中的include指令及其典型应用。pageContext对象的详细讲解。JSP标签(行为元素):

 

JavaWEB高级开发技术:Servlet过滤器及典型案例、Servlet监听器、开发国际化的WEB应用、Locale类,NumberFormat类,DateFormat类,MessageFormat类的应用,资源包(ResourceBundle类、ListResourceBundle类、PropertyResourceBundle类)的应用,Property资源文件与native2ascii工具,如何开发国际化的WEB应用。 自定义标签和JSTL:标签技术开发入门;自定义标签API介绍,Tag接口及其开发案例,自定义标签的属性(动态属性值与动态属性),IterationTag接口及其开发案例,用自定义标签定义JSP脚本变量(TLD文件和TagExtraInfo两种方式),BodyTag接口及其开发案例。简单自定义标签与标签文件,标准标签库(JSTL)

 

JavaMail开发技术:域名解析与MX记录、电子邮件的工作原理、邮件传输协议:SMTPPOP3IMAP、邮件的组织结构:RFC822邮件格式、MIME协议、邮件编码、复合邮件结构分析、JavaMail API及其体系结构、编程创建邮件内容:简单邮件内容、包含内嵌图片的复杂邮件、包含内嵌图片和附件的复杂邮件。

阶段案例       银行在线系统: 本项目实现银行用户管理,包括用户的登陆注册;在线资金管理,包括在线存钱,取钱,查询帐户信息,查询交易记录,网上支付等功能。本项目涉及到WebLogic应用服务器、CVS版本控制、oracle数据库,JSPServletJavaBeanJSTLEl表达式、FilterListener JavaWeb 开发技术,JDBC 数据源,连接池的配置与使用等。

自动邮件群发系统:本项目按各种条件(生日,地区,性别等)从数据库中查询出用户的邮件地址信息并给这些用户自动发送邮件,邮件内容可以在线编辑,也可以采用文件上传方式,可以立即发送,也可以设定延后定时发送。

网上在线支付模块:本系统是为互联网客户提供在线支付功能,可立即应用于项目中。

注:以上三个案例,上课时会根据课堂反馈选择其中两种案例予以重点讲解。

 

第三阶段:Struts2.2AJAXHibernateLucene搜索引擎与OSEM框架CompassJBPM+企业协同OA项目

 

[ 注:我们一直处于主流技术的最前沿,别人还没讲Lucene时,我们已经在讲比Lucene更高层次的Compass了,国内也只有传智播客才能做到 ]

核心技术课程       Struts2框架的工作原理与架构分析,struts-default.xmldefault.properties文件的作用,指定多个配置文件,Struts2中的国际化,Struts2中的表单校验,Struts2中文件上传。使用通配符定义action、动态方法调用、多文件上传、自定义类型转换器、输入校验、国际化、OGNL表达式、Struts2标签、为Action的属性注入值、自定义拦截器、异常处理、使用 struts2实现的CRUD操作的案例。

 

高级Hibernate开发技术:ORM思想,Hibernate数据检索技术,Hibernate高级映射技术,Hibernate多表联合查询,Hibernate大对象读取技术,Hibernate拦截与回调技术,Hibernate二级缓存技术,Hibernate分页技术,Hibernate性能优化技术。 

 

Lucence,全文搜索原理、全文搜索引擎Lucene、什么是OSEMOSEM框架Compass、使用Compass实现全文搜索、使用Lucene实现全文搜索、深入Lucene APILucene 2.2多线程编程模型。

 

Ajax的工作方式、B/S请求响应机制与Web开发模式、XMLHttpRequest对象、DOMAjax、使用DOM操作HTML文档、使用 DOM操作XML文档等。XMLHttpRequest对象、简单的Ajax开发框架、使用responseText处理返回的普通文本信息、使用 responseXML处理返回的XML信息、在普通文本和XML文档之间权衡、Ajax封装、开源Ajax框架、商业Ajax框架。

阶段项目       企业协同办公系统(项目:50):本系统是一个基于互联网的高效协同工作平台和优秀的协同管理系统。它可把日常管理中的业务、事务、事件等信息在单位、部门、组群、个人之间进行及时高效、有序可控、全程共享的沟通和处理。包含组织机构模块,权限管理等模块。

ItcastBBS论坛系统:

Jforum是全球最经典、最著名的大型Java开源论坛,虽然论坛是大家司空见惯的东西,但其价值远远大于各种项目。例如Discuz和动网论坛的作者,现在都已身家过亿,还有哪个做应用软件开发能超过他们的身价呢,这足以说明论坛的复杂性和其超级价值!再者,在实际项目开发过程中,很多项目中都要有论坛的功能,直接用现有的论坛又无法满足项目的需求,很多软件公司想自己去定制符合自己需求的论坛,而论坛又非常复杂,很多开发人员根本无从下手,所以掌握论坛技术的人才往往是软件公司里面最抢手的人才。传智播客花费了大量的时间和心血研究Jforum,并采用SSH对其进行了全面改写,现在改写后的ItcastBBS论坛已成功上线运营。并且,传智播客对重构后的论坛实现了全部开源,在开源社区得到了广泛好评,为中国的开源社区作出了巨大贡献。

 

 

第四阶段:SpringUMLCVS/SVNJfreechart/Poi+CRM项目+ERP项目

 

[ 注:我们一直处于主流技术的最前沿,别人还在讲Spring2.0时,我们已经在讲Spring3.0 ]

核心技术课程       Spring2.5Spring3.0开发技术快速入门,IOC思想、Bean作用域范围、Bean生命周期管理、依赖注入、AOP思想、AOP原理解剖、声明式事务管理、数据源配置。Spring+JDBC集成、Spring+Struts1.3+Hibernate3.5集成、Spring+Struts2.2+Hibernate3.5集成、Spring+Struts1.3+JPA集成、Spring+Struts2.2+JPA集成。

 

什么是工作流、JBPM介绍、JBPM的主要用法、各类节点的用法、任务各种分派方式、JBPM的整体架构原理、工作流定义模型分析、运行期工作流实例模型分析、数据库表模型分析、流程定义管理、流程实例监控、对JBPM的相关接口进行封装,构建自己的工作流应用平台等。

 

软件工程与UML:软件的生命周期、瀑布模型与增量和迭代模型;用例图、类图、时序图与协作图、状态图、活动图、对象图、包图、组件图、部署图。

 

阶段项目       企业进销存管理系统(项目:500):这是一个对企业采购、销售、库存进行管理的系统,对企业的从采购到库存到销售等各个环节进行管理,实现了数据在各个部门之间的共享与流转,提高了企业的运行效率。

惠利至易CRM系统(产品:10):本系统是针对大中型企业而精心设计的客户关系管理系统,为企业提供客户管理、机会管理、报价管理、销售管理、合同管理、商品管理、采购管理、服务管理、竞争对手管理、费用管理等日常业务流程管理的全面解决方案。

 

 

第五阶段:JPAEJB3.0 数据采集系统+巴巴运动网项目+大型网站优化技术

 

[ 注:我们一直都处于主流技术的最前沿,别人还不了解JPA时,我们已经在讲JPA并已经应用于实际项目中了,国内也只有传智播客才能做到 ]

核心技术课程       EJB3.0开发。运行环境的搭建、JBOSS服务器的安装和配置、无状态BEAN、有状态BEANBEAN的生命周期、拦截器、依赖注入、定时服务、消息驱动BEANJBOSS 数据源的配置、MySql 数据源的配置、MsSql 数据源的配置、实体BEAN、单表映射的实体BEAN、一对多及多对一映射、批量更新等。

 

JPA介绍及开发环境搭建、单表实体映射、一对多/多对一、一对一、多对多关联、实体继承、复合主键、JPQL语句、EntityManager API、事务管理。

 

大型网站优化技术:为何三大门户网站新闻内容页面采用.shtml后缀?为何新闻内容在数仟万访问量的情况下仍然性能优越?为何阿里巴巴产品数量上几十亿的情况下,访问速度仍然很快?为何当当网在访问人数达到一定规模的时候会变的很慢?什么是集群?为什么要集群?在集群环境下如何同步文件?这里黎活明老师凭借自己8年大型网站从业经验将向你一一解剖。

(注:因为这门课程,已经有二十几个同学在sinasohu、阿里巴巴、baidu263等知名网站工作,而且在公司已经小有成绩)

项目名称       大型商品交易系统(用户之一:巴巴运动网,产品售价:12):针对大型企业开发的基于分布式构架的大型商品交易平台,系统围绕一个业务中心的思想,实现了多种类型的客户端应用,如:基于浏览器的web交易系统,基于手机的wap交易系统,用于内部办公的OA系统,像这些系统都使用了同一个业务中心。并且系统引入了缓存技术,URL重写技术,页面静态化技术,全文搜索技术,SEO技术。单台普通双核1U服务器并发访问支持700人,同时在线支持1万人。更重要的是巴巴运动网是真正的商业化产品,它溶合了作者多年积累的商务网站运营及软件构架经验,是目前为数不多的集网站运营、业务处理及技术于一身的商品交易系统,是网上流传的商城系统无法比拟的。目前该系统已经和戴尔公司的企业电子商务方案进行捆绑,整套方案少则几佰万,高则上仟万。(注:由于咨询购买系统的用户较多,影响到了公司的培训业务。在此声明一下,本系统不是一万、几千元就可以购买到的,建议小企业选用其他购物系统,而且本系统是针对大中型企业开发的,在小企业里体现不出其价值)

 

巴巴运动网中的一些模块的项目视频我们已经公布了,公布的内容我们不会再在课堂内详细讲解(在课堂内,我们会给大家快速总结归纳一下这些项目的重点和要点,以方便学生课后阅读),以便把时间留出来做新的项目或新的模块。例如,我们已经公布了巴巴运动网的产品分类管理、品牌管理、产品管理、产品样式管理、文件上传管理、产品的前台展示、购物车等模块,那么在我们的培训课程上则不再详细讲解这些模块,而是重点讲解订单的管理和处理、在线支付、页面缓存处理、后台权限管理等新的模块,这样可以让大家通过视频预习和现场培训相结合的方式学习到更多、更深的项目内容。

 

 

第六阶段:LinuxWebServiceAndroid+3G/4G应用开发

 

[ 注:我们一直处于主流技术的最前沿,别人还在讲2.5G网络/J2ME3G概念时,我们已经在讲3G/4G网络和基于Google Android智能手机平台的实际软件开发了 ]

核心技术课程       linux 系统安装,卸载、linux 使用的核心思想、linux下的用户管理,文件管理,系统管理、程序的安装,使用,卸载。linuxJ2EE开发实践。linuxweb服务器,j2ee服务器,ftp服务器,samba服务器的配置。

 

WebService技术原理、WebService技术的应用、Soap服务的创建与管理、WSDL描述文档规范、UDDI 注册中心运行原理;使用AxisXfire创建WEB服务、Webservice客户端的编写、使用TCPMonitor监听SOAP协议、异构平台的整合。 课程中还将贯穿讲解一个银行的跨行取款系统项目:实现对不同平台,不同系统的整合。不论各个商业银行采用的是什么技术,采用的是什么平台,都可以使用WebService技术将其整合,使其可以相互通信。本项目将WebService技术发挥的淋漓尽至,是一个经典WebService企业应用案例。本项目可帮助学员掌握三层体系架构的软件设计思想,学会如何实现一个软件系统的可扩展性,并充分体会分布式系统的架构与应用。

 

什么是3G/4G3G/4G的特点,3G/4G技术WCDMA/ CDMA2000/ TD-SCDMA。掌握3G/4G智能手机平台Android编程的基本概念与要点,Android SDK及其开发环境搭建、Android项目结构分析、Android应用设计模式、文件系统、SDCard读写、SharedPreferencesIntentAndroid三大核心组件(ActivityBroadcastReceiverService)、IntentFilter Content ProviderSQLite数据库(增、删、改、查)、拖拉与多点触摸、应用调试与Android Junit、应用打包与安装。

项目名称       Android手机视频客户端:本系统专为视频网站与电视媒体而开发的手机视频客户端,通过该软件,手机用户可以在线观看视频,在线播放MP3,上传视频,下载视频,视频搜索,视频共享、了解最新最热视频资讯。并且可以使用手机摄像头对事件发生的现场进行拍摄并同步上传至视频网站,网友可以实时观看现场发生的一切,使用该软件,每个手机用户都成为视频网站或电视媒体的现场记者。本软件包含手机客户端和服务器端软件,服务器端软件基于javaee技术构建,主要用于为客户端提供数据、接收客户端上传数据和管理数据。本软件可以进行二次定做,基础价为15万,如需额外功能,价格面议,欲购此软件的企业请与传智播客联系。

来电知了:该软件为共享软件,提供来电归属地信息显示、黑名单拦截、防电信诈骗、生活资讯查询等功能。

 

 

3. JavaEE3G/4G项目实战

使用SpringStrutsHibernate三大框架开发JavaEE应用和使用Android技术开发3G/4G应用的中高级软件实战工程师,并集中讲解WebService、工作流、搜索引擎全文检索、搜索引擎优化、软件架构设计思想、缓存系统设计、网站负载均衡、系统性能调优、Android技术等热门技术

 

第一阶段:Struts2.2AJAXHibernateLucene搜索引擎与OSEM框架CompassJBPM+企业协同OA项目

[ 注:我们一直处于主流技术的最前沿,别人还没讲Lucene时,我们已经在讲比Lucene更高层次的Compass了,国内也只有传智播客才能做到 ]

核心技术课程   Struts2框架的工作原理与架构分析,struts-default.xmldefault.properties文件的作用,指定多个配置文件,Struts2中的国际化,Struts2中的表单校验,Struts2


文件上传。使用通配符定义action、动态方法调用、多文件上传、自定义类型转换器、输入校验、国际化、OGNL表达式、Struts2标签、为Action的属性注入值、自定义拦截器、异常处理、使


struts2实现的CRUD操作的案例。

 

高级Hibernate开发技术:ORM思想,Hibernate数据检索技术,Hibernate高级映射技术,Hibernate多表联合查询,Hibernate大对象读取技术,Hibernate拦截与回调技术,Hibernate二级缓存


技术,Hibernate分页技术,Hibernate性能优化技术。 

 

Lucence,全文搜索原理、全文搜索引擎Lucene、什么是OSEMOSEM框架Compass、使用Compass实现全文搜索、使用Lucene实现全文搜索、深入Lucene APILucene 2.2多线程编程模型。

 

Ajax的工作方式、B/S请求响应机制与Web开发模式、XMLHttpRequest对象、DOMAjax、使用DOM操作HTML文档、使用 DOM操作XML文档等。XMLHttpRequest对象、简单的Ajax开发框架、使用


responseText处理返回的普通文本信息、使用 responseXML处理返回的XML信息、在普通文本和XML文档之间权衡、Ajax封装、开源Ajax框架、商业Ajax框架。

阶段项目  企业协同办公系统(项目:50):本系统是一个基于互联网的高效协同工作平台和优秀的协同管理系统。它可把日常管理中的业务、事务、事件等信息在单位、部门、组群


、个人之间进行及时高效、有序可控、全程共享的沟通和处理。包含组织机构模块,权限管理等模块。

ItcastBBS论坛系统:

Jforum是全球最经典、最著名的大型Java开源论坛,虽然论坛是大家司空见惯的东西,但其价值远远大于各种项目。例如Discuz和动网论坛的作者,现在都已身家过亿,还有哪个做应用软件


开发能超过他们的身价呢,这足以说明论坛的复杂性和其超级价值!再者,在实际项目开发过程中,很多项目中都要有论坛的功能,直接用现有的论坛又无法满足项目的需求,很多软件公司


想自己去定制符合自己需求的论坛,而论坛又非常复杂,很多开发人员根本无从下手,所以掌握论坛技术的人才往往是软件公司里面最抢手的人才。传智播客花费了大量的时间和心血研究


Jforum,并采用SSH对其进行了全面改写,现在改写后的ItcastBBS论坛已成功上线运营。并且,传智播客对重构后的论坛实现了全部开源,在开源社区得到了广泛好评,为中国的开源社区作


出了巨大贡献。

 

 

第二阶段:SpringUMLCVS/SVNJfreechart/Poi+CRM项目+ERP项目

[ 注:我们一直处于主流技术的最前沿,别人还在讲Spring2.0时,我们已经在讲Spring3.0 ]

核心技术课程   Spring2.5Spring3.0开发技术快速入门,IOC思想、Bean作用域范围、Bean生命周期管理、依赖注入、AOP思想、AOP原理解剖、声明式事务管理、数据源配置。Spring


+JDBC集成、Spring+Struts1.3+Hibernate3.5集成、Spring+Struts2.2+Hibernate3.5集成、Spring+Struts1.3+JPA集成、Spring+Struts2.2+JPA集成。

 

什么是工作流、JBPM介绍、JBPM的主要用法、各类节点的用法、任务各种分派方式、JBPM的整体架构原理、工作流定义模型分析、运行期工作流实例模型分析、数据库表模型分析、流程定义


管理、流程实例监控、对JBPM的相关接口进行封装,构建自己的工作流应用平台等。

 

软件工程与UML:软件的生命周期、瀑布模型与增量和迭代模型;用例图、类图、时序图与协作图、状态图、活动图、对象图、包图、组件图、部署图。

 

阶段项目  企业进销存管理系统(项目:500):这是一个对企业采购、销售、库存进行管理的系统,对企业的从采购到库存到销售等各个环节进行管理,实现了数据在各个部门之间的


共享与流转,提高了企业的运行效率。

惠利至易CRM系统(产品:10):本系统是针对大中型企业而精心设计的客户关系管理系统,为企业提供客户管理、机会管理、报价管理、销售管理、合同管理、商品管理、采购管理、服务管


理、竞争对手管理、费用管理等日常业务流程管理的全面解决方案。

 

 

第三阶段:JPAEJB3.0 数据采集系统+巴巴运动网项目+大型网站优化技术+网上在线支付

 

[ 注:我们一直都处于主流技术的最前沿,别人还不了解JPA时,我们已经在讲JPA并已经应用于实际项目中了,国内也只有传智播客才能做到 ]

核心技术课程   EJB3.0开发。运行环境的搭建、JBOSS服务器的安装和配置、无状态BEAN、有状态BEANBEAN的生命周期、拦截器、依赖注入、定时服务、消息驱动BEANJBOSS 数据源的配


置、MySql 数据源的配置、MsSql 数据源的配置、实体BEAN、单表映射的实体BEAN、一对多及多对一映射、批量更新等。

 

JPA介绍及开发环境搭建、单表实体映射、一对多/多对一、一对一、多对多关联、实体继承、复合主键、JPQL语句、EntityManager API、事务管理。

 

大型网站优化技术:为何三大门户网站新闻内容页面采用.shtml后缀?为何新闻内容在数仟万访问量的情况下仍然性能优越?为何阿里巴巴产品数量上几十亿的情况下,访问速度仍然很快?


为何当当网在访问人数达到一定规模的时候会变的很慢?什么是集群?为什么要集群?在集群环境下如何同步文件?这里黎活明老师凭借自己8年大型网站从业经验将向你一一解剖。

(注:因为这门课程,已经有二十几个同学在sinasohu、阿里巴巴、baidu263等知名网站工作,而且在公司已经小有成绩)

项目名称  大型商品交易系统(用户之一:巴巴运动网,产品售价:12):针对大型企业开发的基于分布式构架的大型商品交易平台,系统围绕一个业务中心的思想,实现了多种类型


的客户端应用,如:基于浏览器的web交易系统,基于手机的wap交易系统,用于内部办公的OA系统,像这些系统都使用了同一个业务中心。并且系统引入了缓存技术,URL重写技术,页面静态


化技术,全文搜索技术,SEO技术。单台普通双核1U服务器并发访问支持700人,同时在线支持1万人。更重要的是巴巴运动网是真正的商业化产品,它溶合了作者多年积累的商务网站运营及软


件构架经验,是目前为数不多的集网站运营、业务处理及技术于一身的商品交易系统,是网上流传的商城系统无法比拟的。目前该系统已经和戴尔公司的企业电子商务方案进行捆绑,整套方


案少则几佰万,高则上仟万。(注:由于咨询购买系统的用户较多,影响到了公司的培训业务。在此声明一下,本系统不是一万、几千元就可以购买到的,建议小企业选用其他购物系统,而


且本系统是针对大中型企业开发的,在小企业里体现不出其价值)

 

巴巴运动网中的一些模块的项目视频我们已经公布了,公布的内容我们不会再在课堂内详细讲解(在课堂内,我们会给大家快速总结归纳一下这些项目的重点和要点,以方便学生课后阅读)


,以便把时间留出来做新的项目或新的模块。例如,我们已经公布了巴巴运动网的产品分类管理、品牌管理、产品管理、产品样式管理、文件上传管理、产品的前台展示、购物车等模块,那


么在我们的培训课程上则不再详细讲解这些模块,而是重点讲解订单的管理和处理、在线支付、页面缓存处理、后台权限管理等新的模块,这样可以让大家通过视频预习和现场培训相结合的


方式学习到更多、更深的项目内容。

网上在线支付模块:本系统是为互联网客户提供在线支付功能,可立即应用于项目中。

 

 

第四阶段:LinuxWebServiceAndroid+3G/4G应用开发

 

[ 注:我们一直处于主流技术的最前沿,别人还在讲2.5G网络/J2ME3G概念时,我们已经在讲3G/4G网络和基于Google Android智能手机平台的实际软件开发了 ]

核心技术课程   linux 系统安装,卸载、linux 使用的核心思想、linux下的用户管理,文件管理,系统管理、程序的安装,使用,卸载。linuxJ2EE开发实践。linuxweb服务器,j2ee


务器,ftp服务器,samba服务器的配置。

 

WebService技术原理、WebService技术的应用、Soap服务的创建与管理、WSDL描述文档规范、UDDI 注册中心运行原理;使用AxisXfire创建WEB服务、Webservice客户端的编写、使用


TCPMonitor监听SOAP协议、异构平台的整合。 课程中还将贯穿讲解一个银行的跨行取款系统项目:实现对不同平台,不同系统的整合。不论各个商业银行采用的是什么技术,采用的是什么平


台,都可以使用WebService技术将其整合,使其可以相互通信。本项目将WebService技术发挥的淋漓尽至,是一个经典WebService企业应用案例。本项目可帮助学员掌握三层体系架构的软件


设计思想,学会如何实现一个软件系统的可扩展性,并充分体会分布式系统的架构与应用。

 

什么是3G/4G3G/4G的特点,3G/4G技术WCDMA/ CDMA2000/ TD-SCDMA。掌握3G/4G智能手机平台Android编程的基本概念与要点,Android SDK及其开发环境搭建、Android项目结构分析、


Android应用设计模式、文件系统、SDCard读写、SharedPreferencesIntentAndroid三大核心组件(ActivityBroadcastReceiverService)、IntentFilter Content Provider


SQLite数据库(增、删、改、查)、拖拉与多点触摸、应用调试与Android Junit、应用打包与安装。

项目名称  Android手机视频客户端:本系统专为视频网站与电视媒体而开发的手机视频客户端,通过该软件,手机用户可以在线观看视频,在线播放MP3,上传视频,下载视频,视频


搜索,视频共享、了解最新最热视频资讯。并且可以使用手机摄像头对事件发生的现场进行拍摄并同步上传至视频网站,网友可以实时观看现场发生的一切,使用该软件,每个手机用户都成


为视频网站或电视媒体的现场记者。本软件包含手机客户端和服务器端软件,服务器端软件基于javaee技术构建,主要用于为客户端提供数据、接收客户端上传数据和管理数据。本软件可以


进行二次定做,基础价为15万,如需额外功能,价格面议,欲购此软件的企业请与传智播客联系。

来电知了:该软件为共享软件,提供来电归属地信息显示、黑名单拦截、防电信诈骗、生活资讯查询等功能。

 

 

 

4. 3G/4G Android实战

第一天    1>搭建Android开发环境

2> 创建与启动手机模拟器

3> 学习使用ANDROID操作系统

4> 开发与运行(卸载)第一个ANDROID应用

5> 项目的目录结构

6> 项目清单文件分析

7> 分析第一个ANDROID应用的启动过程

8> 电话拔打

9> 查看手机模拟器往控制台输出的日志信息

10> 如何部署应用到真实手机

11> 短信发送

12> 布局介绍

LinearLayout (线性布局)AbsoluteLayout(绝对布局)RelativeLayout(相对布局)TableLayout(表格布局)FrameLayout(帧布局)

第二天    1> 单元测试

2> 查看与输出日志信息

3> 文件操作

4> SDCard读写文件

5> XML解析(SAX/DOM/PULL),写xml文件

6> SharedPreferences

第三天    1> SQLite数据库添删改查操作

    A.创建数据库

    B.SQLiteOpenHelper自动创建数据库的原理实现

    C.数据库版本变化

    D.编写代码完成添删改查操作(两种实现方法)

    E.事务的实现

    F.采用ListView实现数据列表显示

2> 采用ContentProvider对外共享数据

第四天    1> 往通信录添加联系人,和获取联系人

2> 网络--获取数据(图片、网页、xmlJson等)

3> 如何把数据通过HTTP协议提交到网络上的Web应用(get / post ) 数据大于2k的时候

    A.通过Get方式提交参数给Web应用

    B.通过Post方式提交参数给Web应用

    C.使用HttpClient开源项目提交参数给服务器

4> 网络--通过HTTP协议实现文件上传

第五天    1> 网络--通过HTTP协议发送XML数据,并调用webservice实现手机号归属地查询

2> 网络--通过HTTP协议实现多线程断点续传下载

3> 为应用添加新的Activity与参数传递

4> 意图

第六天    1> Activity的生命周期

2> 广播接收者(实现短信监听)

3> 服务与语音刻录(实现电话监听)、使用AIDL实现进程通信

4> 音乐播放器

5> 视频播放器

第七天    1> 拍照

2> 视频录制

3> 手势识别

4> 国际化(文字、图片)、屏幕适配、样式与主题

5> 编码实现软件界面

第八天    1> 采用HTML设计软件界面

2> 传感器的使用和拖拉功能实现

3> 软件打包与发布,生成私钥签名你的软件

4> 简历介绍

第九天以后    讲解Android手机视频客户端、来电知了、新浪微博客户端等项目

项目名称       Android手机视频客户端:本系统专为视频网站与电视媒体而开发的手机视频客户端,通过该软件,手机用户可以在线观看视频,在线播放MP3,上传视频,下载视频,视频


搜索,视频共享、了解最新最热视频资讯。并且可以使用手机摄像头对事件发生的现场进行拍摄并同步上传至视频网站,网友可以实时观看现场发生的一切,使用该软件,每个手机用户都成


为视频网站或电视媒体的现场记者。本软件包含手机客户端和服务器端软件,服务器端软件基于javaee技术构建,主要用于为客户端提供数据、接收客户端上传数据和管理数据。本软件可以


进行二次定做,基础价为15万,如需额外功能,价格面议,欲购此软件的企业请与传智播客联系。

来电知了:该软件为共享软件,提供来电归属地信息显示、黑名单拦截、防电信诈骗、生活资讯查询等功能。

 

 

 

 

3. Java EE开发四大常用框架

 

Struts

Struts是一个基于Sun Java EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。

Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关:

1、模型 (Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的配置信息的。

2、视图(View),View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面。

3、控制器(Controller),本质上是一个Servlet,将客户端请求转发到相应的Action类。

4、一堆用来做XML文件解析的工具包,Struts是用XML来描述如何自动产生一些JavaBean的属性的,此外Struts还利用XML来描述在国际化应用中的用户提示信息的(这样一来就实现了应用系统的多语言支持)。

 

Spring

Spring是轻量级的Java EE应用程序框架。

Spring的核心是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案 。

Spring不会特別去提出一些子框架来与现有的OpenSource框架竞争,除非它觉得所提出的框架夠新夠好,例如Spring有自己的 MVC框架方案,因为它觉得现有的MVC方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可以在Spring中整合您的Struts框架 。

Spring的核心概念是IoC,IoC的抽象概念是「依赖关系的转移」,像是「高层模组不应该依赖低层模组,而是模组都必须依赖于抽象」是 IoC的一种表现,「实现必须依赖抽象,而不是抽象依赖实现」也是IoC的一种表现,「应用程序不应依赖于容器,而是容器服务于应用程序」也是IoC的一种表现。

Spring的架构性的好处

Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了Java EE特有APIs的framework,你会发现Spring关注了遗留下的问题。

Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。

Spring 能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。

Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。

使用Spring构建的应用程序易于单元测试。

Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。

Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。

Spring为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate)。

Spring确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。

Spring能做什么?

Spring提供许多功能,在此我将快速地依次展示其各个主要方面。

任务描述:

首先,让我们明确Spring范围。尽管Spring覆盖了许多方面,但我们已经有清楚的概念,它什么应该涉及和什么不应该涉及。

Spring的主要目的是使Java EE易用和促进好编程习惯。

Spring 不重新开发已有的东西。因此,在Spring中你将发现没有日志记录的包,没有连接池,没有分布事务调度。这些均有开源项目提供(例如 Commons Logging 用来做所有的日志输出,或Commons DBCP用来作数据连接池),或由你的应用程序服务器提供。因为同样的的原因,我们没有提供O/R mapping层,对此,已有有好的解决办法如Hibernate和JDO。

Spring的目标是使已存在的技术更加易用。例如,尽管我们没有底层事务协调处理,但我们提供了一个抽象层覆盖了JTA或任何其他的事务策略。

Spring没有直接和其他的开源项目竞争,除非我们感到我们能提供新的一些东西。例如,象许多开发人员,我们从来没有为Struts高兴过,并且感到在MVC web framework中还有改进的余地。在某些领域,例如轻量级的 IoC容器和AOP框架,Spring有直接的竞争,但是在这些领域还没有已经较为流行的解决方案。(Spring在这些区域是开路先锋。)

Spring也得益于内在的一致性。

所有的开发者都在唱同样的的赞歌,基础想法依然是Expert One-on-One Java EE设计与开发的那些。

并且我们已经能够使用一些主要的概念,例如倒置控制,来处理多个领域。

Spring在应用服务器之间是可移植的。

当然保证可移植性总是一次挑战,但是我们避免任何特定平台或非标准化,并且支持在WebLogic,Tomcat,Resin,JBoss,WebSphere和其他的应用服务器上的用户。

Spring的核心即是个IoC/DI的容器,它可以帮程序设计人员完成组件之间的依赖关系注入,使得组件之间的依赖达到最小,进而提高组件的重用性,Spring是个低侵入性(invasive)的框架,Spring中的组件并不会意识到它正置身于Spring中,这使得组件可以轻易的从框架中脱离,而几乎不用任何的修改,反过来说,组件也可以简单的方式加入至框架中,使得组件甚至框架的整合变得容易。

Spring最为人重视的另一方面是支持AOP(Aspect-Oriented Programming),然而AOP框架只是Spring支持的一个子框架,说Spring框架是AOP框架并不是一件适当的描述,人们对于新奇的 AOP关注映射至Spring上,使得人们对于Spring的关注集中在它的AOP框架上,虽然有所误解,但也突显了Spring的另一个令人关注的特色。

Spring也提供MVC Web框架的解決方案,但您也可以将自己所熟悉的MVC Web框架与Spring解合,像是Struts、Webwork等等,都可以与Spring整合而成为进用于自己的解決方案。Spring也提供其它方面的整合,像是持久层的整合如JDBC、O/R Mapping工具(Hibernate、iBATIS)、事务处理等等,Spring作了对多方面整合的努力,故说Spring是个全方位的应用程序框架。

 

 

Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使得Java程序员可以使用对象编程思维来操纵数据库。Hibernate可以在应用EJB的Java EE架构中取代CMP,完成数据持久化。它还可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用

Hibernate的工作方式

Hibernate不会对您造成妨碍,也不会强迫您修改对象的行为方式。它们不需要实现任何不可思议的接口以便能够持续存在。惟一需要做的就是创建一份 XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据。与其他解决方案相比,它几乎已经很完美了。

由于本文只是一篇介绍性的文章,所以不会引入构建和使用Hibernate映射文档的具体例子(我在《Hibernate: A Developer's Notebook》一书的头几章中已经介绍了一个例子)。此外,在网上和Hibernate的在线文档中,还可以找到一些不错的例子,请参见下面的“其他信息”部分。它实际上相当直观。应用程序对象中的属性以一种简单而自然的方式与正确的数据库结构相关联。

运行时,Hibernate读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换。在 Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们。

Hibernate API学习起来很简单,而且它与程序流的交互相当自然。在适当的位置调用它,就可以达成目的。它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的。而且还可以获得另一个好处,即代码不用关心要使用的数据库种类(否则的话甚至必须知道)。我所在的公司就曾有过在开发过程后期被迫更换数据库厂商的经历。这会造成巨大的灾难,但是借助于Hibernate,只需要简单地修改Hibernate配置文件即可。

这里的讨论假定您已经通过创建Hibernate映射文档,建立了一个关系数据库,并且拥有要映射的Java 类。有一个Hibernate“工具集”可在编译时使用,以支持不同的工作流。例如,如果您已经拥有Java类和映射文档,Hibernate可以为您创建(或更新)必需的数据库表。或者,仅仅从映射文档开始,Hibernate也能够生成数据类。或者,它可以反向设计您的数据库和类,从而拟定映射文档。还有一些用于Eclipse的alpha 插件,它们可以在IDE中提供智能的编辑支持以及对这些工具的图形访问。

使用Hibernate的场合

既然Hibernate看起来如此灵活好用,为什么还要使用其他的工具呢?下面有一些场景,可以帮助您做出判断(或许通过提供一些比较和上下文,可以有助于鉴别非常适用Hibernate的场合)。

如果应用对于数据存储的需要十分简单——例如,您只想管理一组用户优先选择——您根本不需要数据库,更不用说一个优秀的对象-关系映射系统了(即使它也如Hibernate这般易于使用)!从Java 1.4开始,有一个标准的Java Preferences API可以很好地发挥这个作用。

对于熟悉使用关系数据库和了解如何执行完美的SQL查询与企业数据库交互的人来说,Hibernate似乎有些碍手碍脚,这就像带有动力和自动排挡的快艇车会使注重性能的赛车驾驶员不耐烦一样。如果您属于这种人,如果您所在的项目团队拥有一个强大的DBA,或者有一些存储过程要处理,您可能想研究一下iBATIS。Hibernate的创建者本身就把iBATIS当作是另一种有趣的选择。我对它很有兴趣,因为我们曾为一个电子商务站点开发了一个类似的系统(其功能更为强大),而且从那时到现在,我们已经在其他环境中使用过它,尽管在发现Hibernate之后,在新项目中我们通常更喜欢使用Hibernate。您可以认为,以SQL为中心的解决方案(比如iBATIS)是“反向的”对象/关系映射工具,而 Hibernate是一个更为传统的ORM。

当然,还有其他的外部原因会导致采用另外的方法。比如,在一个企业环境中,必须使用成熟的EJB架构(或者其他的一些非普通对象映射系统)。可以为提供自己的数据存储工具的平台量身定做代码,比如Mac OS X's Core Data。使用的可能是像XML DTD这样的存储规范,而它根本不涉及关系数据库。

但是,如果您使用的是富对象模型,而且想要灵活、轻松且高效地保存它(无论您是否正要开始或已经决定使用关系数据库,只要这是一个选择——而且存在可用的优秀免费数据库,比如MySQL,或可嵌入Java的HSQLDB,它就应该始终是一个选择),那么 Hibernate很可能就是您理想的选择。您可能会惊讶于节省的时间之多,以及您将会多么地喜欢使用它.

 

Swing

图形用户接口(GUI)库最初的设计目的是让程序员构建一个通用的GUI,使其在所有的平台上都能够正常的显示。但是比较遗憾的是AWT产生的是在各系统看来都同样欠佳的图形用户接口,JAVA1.2为老的java1.0 AWT添加了Java基础类(JFC),这是一个被称为“Swing”的GUI的一部分。Swing是第二代GUI开发工具集,AWT采用了与特定平台相关的实现,而绝大部分Swing组件却不是。Swing是构筑在AWT上层的一组GUI组件的集合,为了保证可移植性,它完全用Java语言编写,与AWT相比,Swing提供了更完整的组件,引入了许多新的特性和能力。Swing提供了更多的组件库,如:JTable,JTree,Jcombox。Swing也增强了AWT中组件的功能。正是因为Swing具备了如此多的优势所以我们以后在开发中都使用Swing。JComponent类是Swing组件的基类,而JComponent继承自Container类,因此,所有的Swing组件都是AWT的容器。Swing采用了MVC设计模式。