Java技术路线图
提示:前文对Java技术做了框架性的分析,包括Java SE、Java EE和Java ME,让读者了解了Java由哪些技术组成。为了系统地学习这些技术,本文将制定一套完整的Java技术学习路线。
从前文中我们已经了解到,Java SE中包含了Java的基础技术,Java EE中包含了网络应用开发的各种技术,Java ME中包含了移动设备应用开发的各种技术,且Java SE是Java EE和Java ME的基础,所以对于Java技术的学习,有两条学习路线:
Java SE→Java EE:主要进行网络应用开发,是Java技术学习的一条完整路线,是基于Java EE的企业应用开发,是目前Java应用的主要方向。
Java SE→Java ME:主要进行无线应用开发,该技术路线相对简单一些。
Java SEàJava EE的技术由低到高形成了一个完整的体系,是Java/Java EE工程师成长必备的技术体系,下面我们就根据Java SEàJava EE的技术体系制定一套完整的学习路线。
1、Java EE技术分类
根据Java EE技术的分层,我们可以将Java EE技术分为以下3类。
(1)Web应用技术
JDBC:JDBC(Java DataBase Connectivity)是一个基于标准SQL的数据库访问接口,主要用来连接数据库和直接调用SQL命令执行各种SQL语句和存储过程。JDBC相当与Microsoft平台中的ODBC。
Servlet:Servlet是Java平台上的CGI技术。它在服务器端运行,用以动态生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,它依靠线程的方式来支持并发访问。
JSP(EL/JSTL):JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术,类似Microsoft ASP、PHP等技术。它借助内容和外观表现的分离,使得Web页面开发可以方便地划分给页面设计人员和程序员。在运行时态,JSP将会被首先转换成Servlet,它的效率和功能与Servlet相比没有差别。
JavaBean:封装业务逻辑的组件,可以实现业务组件的重用。
JSF:JSF(JavaServer Faces)是一种专用于构建Java Web应用的页面组件技术,它集成了Servlet、JSP、JavaBean、EL、JSTL和自定义标签等各种页面技术,方便绘制丰富的页面组件。
(2)企业级应用技术
EJB:EJB定义了一组可重用的组件Enterprise Beans。开发人员可以利用这些组件,像搭积木一样建立分布式应用。EJB为它的开发人员代管了诸如安全性、远程连接、生命周期管理及事务管理等技术环节,简化了商业逻辑的开发。
JNDI:JNDI(Java Naming and Directory Interface)用于定位分布式系统中的各种对象,这些对象包括EJB、数据库驱动、JDBC数据源及消息连接等,还可以使用JNDI访问各种特定的目录服务,如LDAP、NDS和DNS等。
JMS:JMS消息服务是一组Java应用接口,它提供创建、发送、接收、读取消息的服务,使得Java应用能够和各种消息中间件进行通信,这些消息中间件包括IBM MQ-Series、Microsoft MSMQ及纯Java的SonicMQ。
JavaMail:提供了一整套模拟邮件系统的抽象类。通过JavaMail,可以创建邮件或消息应用程序。
JAF:JavaMail利用JavaBeans Activation Framework(JAF)来处理MIME-编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。
JTA:JTA提供了Java EE中处理事务的标准接口,它支持事务的开始、回滚和提交。同时在Java EE平台上提供一个JTS(Java Transaction Service)作为标准的事务处理服务,开发人员可以使用JTA来使用JTS。
JACC:JACC(Java Authorization Service Provider Contract for Containers)在Java EE应用服务器和特定的授权认证服务器之间定义了一个连接的协约,以便将各种授权认证服务器插入到Java EE产品中去。
JAAS:JAAS(Java Authentication and Authorization Service)实现了一个Java版本的标准Pluggable Authentication Module(PAM)框架。它可用来进行用户身份的鉴定,还能通过对用户进行授权,实现基于用户的访问控制。
JCA:JCA(Java EE Connector Architecture)是Java EE体系架构的一部分,它提供了一套连接各种企业信息系统(包括ERP、SCM、CRM等)的体系架构,开发商只需要开发一套基于JCA的连接适配器,就能够在任何Java EE服务器中连接并使用它。
JMX:JMX(Java Management Extensions)致力于解决分布式系统管理的问题,它是一种应用编程接口、可扩展对象和方法的集合体,可以跨越各种异构操作系统平台、系统体系结构和网络传输协议,开发无缝集成的面向系统、网络和服务的应用。
(3)Web服务技术
JAX-RPC:通过使用JAX-RPC(Java API for XML-based RPC),已有的Java类或Java应用都能够被重新包装,并以Web Services的形式发布。JAX-RPC提供了将RPC参数(in/out)编码和解码的API,使开发人员可以方便地使用SOAP消息来完成RPC调用,EJB应用也可以使用JAX-RPC来包装成Web服务。
SOA(SAAJ):SAAJ(SOAP with Attachemnts API for Java)是JAX-RPC的一个增强,为进行低层次的SOAP消息操纵提供了支持。
JAXR:JAXR(Java API for XML Registries)提供了与多种类型注册服务进行交互的API。JAXR运行客户端访问与JAXR规范相兼容的Web Servcices,这里的Web Services即为注册服务。一般来说,注册服务总是以Web Services的形式运行的。
2、Java技术学习路线图
Java EE技术,从简单到复杂依次包括:Web应用技术、企业级应用技术、Web服务技术,除了这些技术之外,还有一些开源的框架技术,包括Web框架Struts/WebWork/Tapstry,业务层框架Spring,持久层框架Hibernate/iBATIS,这些也都是Java EE的应用技术。
这些技术虽然琳琅满目,但是也是层层递进,逐步形成了Java EE工程师的学习技术路线。除了Java EE技术之外,还有Java基础技术、数据库基础、网页开发技术需要在前期进行掌握。在学习了所有的Java基础、Java EE技术之后,再付诸于实践,你就达到了架构师的水平,进而走上技术管理的道路,可以达到技术道路的峰顶——CTO。
为了层层递进学习这些技术,我们为(注:本图和图书拉页上的图近似,但略有差异)。
四.关于“Java高手真经”
引言:为了帮助Java工程师的成长之路,我们编著了“Java高手真经”系列图书,该系列与Java技术学习路线层层对应,采用“快速原型法”(快速实现可复用的原型系统)进行技术讲解,让读者边学边练,逐步提高。
1、技术体系课程
根据Java技术学习路线图,我们为每一步的技术设置了一个专题课程,如下表所示。
2、学习目标:了解企业流行技术,实战企业开发过程
大学生(或开发经验很少的程序员,下同)在毕业后去IT公司面试与就业时,面临一个问题,就是大学所学的知识与IT公司的知识结构脱节。
目前大学通常开设如下的基本课程:数据库原理、数据结构、操作系统、离散数学、软件工程、C语言、Java语言。这些课程都是最基本的课程,通过学习这些课程,大学生能够掌握IT开发的基础理论知识,显然在IT公司这些只是最基本的理论知识。
IT公司要么是进行产品研发,要么是进行项目开发,但是都是基于项目实践的,它要求的技能都是应用型的,例如:Java方面的Struts、Hibernate、Spring、Eclipse,.NET方面的Visual Studio、ASP、ASP.NET,数据库方面的Oracle、SQL Server、MySQL等。
因为大学里学习的知识与IT公司所要求的知识结构处于两个不同的层面,在大学生参加就业面试时,往往出现面试者因为不熟悉IT公司的知识结构,而不能够很好地体现出自己的能力。
因此,我们就设计了这个系列,在大学毕业生与IT公司之间架起一座桥梁,让大学毕业生能够在理论知识的基础上,扎实学习IT公司的应用知识,进行技术与经验的面试前培训。
3、课程特色:快速原型法
本系列图书的讲解采用快速原型法,原型的搭建不仅能够实战技术,还能够作为后期扩展开发的基础。
快速原型法(rapid prototyping)是近年来提出的一种以计算机为基础的系统开发方法,它首先构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统。原型就是模型,而原型系统就是应用系统的模型。它是待构筑的实际系统的缩小比例模型,但是保留了实际系统的大部分性能。这个模型可在运行中被检查、测试、修改,直到它的性能达到用户需求为止。因而这个工作模型很快就能转换成原样的目标系统。
本系列的众多技术都将会采用开发DEMO演示案例的形式进行讲解,建立起原型系统,不仅能够锻炼技术,还能够进行扩展复用。
4、本系列适用读者
本系列图书面向读者对象:Java软件企业培训,Java自学读者。