Java EE入门教程系列(一)——第一章Java EE的概述(1)

题外话:这个系列是为了记录学习Java EE的轨迹,也算是读书笔记,是我先看完了一遍教程对相关概念有了一个大体印象以后准备再重头细看一遍时同步写的博客。感想就是其实以前课堂上老师教的课都是很有作用的,如果你能很好地掌握设计模式、计算机网络的相关知识,那么对你理解Java EE会有很大的帮助。可能是大三才有了以后要找工作的实感,似乎慢慢知道自己该学些什么,不像大一大二想努力的时候还是很迷茫找不到方向。其实现在也常常否定自己,觉得自己醒悟的太晚,大三了代码能力还是很差。但是也会觉得其实生活也待我不薄,也会有很多小确信,比如看到博客浏览量每天都在增加,看到陌生的人因为我的博客关注我······上面都是题外话啦,我们开始吧!

敲黑板:本章主要介绍Java EE的基础概念,以及与之相关的一些组件和技术。通过对Java EE体系的宏观性介绍,阐述企业及软件开发的基本体系结构。通过对容器——组件的介绍,阐述Java EE的编程思想及优势。

本章的重点为Java EE的编程思想、体系结构,以及它的容器与组件。

1.1Java EE的由来

1.1.1软件开发的发展历程(为了完整性会很简单地介绍一下,想要深入了解的可以自行搜索哦)

软件开发是个比较年轻的行业,它的发展历程和其他传统工业、传统技术很相似。它的发展受到了市场需求和硬件的推动和制约,同时也反过来推动了市场需求和硬件的发展。目前比较主流的软件技术发展历程大致可分为3个阶段:第一阶段是软件技术发展的早期(1940~1960),个人作品阶段;第二个阶段是结构化程序设计及高级语言大发展时期(1960~1980),作坊生产阶段;第三个阶段是从80年代到现在,是软件工程技术及面向对象语言的大发展时期,软件开发的工业革命。(从名字就很好理解这些阶段的主要特点了)

1.1.2企业级软件项目开发的体系结构

企业级应用程序的概念:这里的企业级是指那些应用规模巨大,集成了很多应用功能,需要处理巨量数据的软件开发项目。

企业级软件开发的规模一般具有以下特点:1)基于网络的应用(而不是基于机器);2)巨量的数据集成;3)高度的安全性;4)具备可扩展性。

目前软件开发的两大方向为:

C/S体系结构:

由客户端(Client)和服务器端(Server)两部分构成。用户想要使用这个系统,首先必须先安装它的客户端,比如我们手机里的QQ等软件,这也是它的一个缺点。客户端负责人机界面的交互及业务控制方面的操作,服务器端主要负责数据的交互和保存。优点就是系统安全性高,通信效率高,能处理大量数据,交互性强。

B/S体系结构:

由浏览器(Browser)和服务器(Server)组成。要注意的是浏览器只是起到了“浏览”的作用,它仅仅把程序需要传递的页面在浏览器中呈现出来,本身不对数据做任何处理。在这种体系结构中,服务器内部进行了一个分层,应用服务器负责实现业务处理和控制,可以近似认为代替了C/S中客户端的部分功能,数据库服务器负责对数据库的管理和对数据的具体交互。优点就是你只需要一个浏览器不需要安装客户端,而且服务器的分层有效地使程序和数据分离,提高了独立性。(这个系列介绍的Java EE是针对B/S体系结构提出的解决方案)

1.2认识Java EE

1.2.1 Java EE简介(有很多抽象的概念我都在括号里给了我觉得比较好理解的解释,除此之外还有很多不同的解释,不理解的话可以查阅资料找到自己最喜欢的解释^^)

Java EE的全称是Java Platform Enterprise Edition。它是基于Java语言的一种软件设计体系结构(软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系),所以它不是一种语言,也不是集成开发环境(是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具),而是一种标准中间件体系结构(中间件一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境)。Java EE作用在于标准化企业级多层应用系统的部署,简化开发过程。好比盖大楼,采用的是砖混结构还时框架结构。

软件开发的过程是一个不断标准化、专业化、抽象化的过程。从面向对象到Java EE是进一步抽象了开发过程中的应用对象,并且对开发过程中各个组件的接口进行了统一的、标准化的规范。

一个典型的Java EE结构的软件应用系统,从逻辑上划分,包括三层:表示层、业务层及数据持久层

表示层:负责对客户的响应,并进行一定的业务控制(转发和指派)

业务层:主要负责对业务数据的具体控制和响应,并负责对具体数据发起编辑请求

数据持久层:主要负责对数据库系统的控制和管理,业务层的数据请求都需要通过持久层的处理来完成与具体数据库数据的交互。

Java EE就是通过上面三层的设计,给出了一个标准的软件架构和设计方案。Java EE设计的内容非常多而且是一直在进行扩展,因为除了它自己设计出来的具体组件之外,很多公司也在不断地遵循它的标准设计适合自己产品的组件,Java EE有巨大的影响力。

1.2.2Java EE的编程思想(容器—组件)

容器—组件的编程思想,从逻辑上说就是把完成具体功能的工具以组建的形式“装入”一个容器之中,具体的实现方式是要求组件对所有数据的接收和发送必须通过容器才能完成。也就是说服务器发出的请求是由容器分发到响应组件进行处理的,处理的结果又交给容器,由容器决定最后的输出方式。

这样做可以用统一的标准处理数据,并且让容器与系统其他部分保持很高的独立性。这个思想是面向对象中类的封装性的一种延续,只不过比起类封装一个特定的数据模式,容器封装的是更大的一组特定的功能。

Java EE的容器会给组件提供一些底层的基础功能来完成组件与外界的数据互交。Java EE提供了一个统一的标准规范实现了组件与容器之间既保持相对独立,又有比较强大的数据交互能力。

最常见的Java EE容器是Web容器和EJB容器。它们所包含的组件会在容器的Java虚拟机中进行初始化。组件根据容器提供的标准服务来与外界进行互交。这些服务主要包括命名服务、数据库连接服务、持久化、消息服务、事务支持和安全性服务等。大部分底层的基础功能都由容器提供,可以让开发者专注于对业务逻辑的设计。

从实现原理看,容器与组件之间的通信除了Java程序本身的算法完成具体操作外,更重要的是通过一个部署描述文件来解决容器如何向组件提供服务,提供哪种服务的问题,这个文件是一个用XML语言写成的文件,可以想一想生活中各种家电说明书的作用。

这个文件会随着系统的复杂而不断变得复杂,所以设计人员也在不断优化,比如Java EE5推出了支持在组件中实现直接对注解的引用,Java EE5还对配置做了模块化的设置。这里就不细说了,感兴趣的小伙伴自行查阅资料吧。

感觉也没有很多字但是写了挺久的,因为好多地方要停下来仔细想想,这一块我觉得还是有点抽象,建议大家多回味一下~

猜你喜欢

转载自blog.csdn.net/qq_40996041/article/details/83956118