目录
Java EE 简述
Java EE是Java平台的企业级扩展,为企业级应用程序提供了一套规范和技术标准。它建立在Java SE(Java Platform Standard Edition)的基础之上,通过引入额外的API和服务,以支持开发、部署和管理大规模、复杂的企业级应用。
-
Java SE(Java Standard Edition):
- Java SE是Java平台的标准版本,是用于开发和部署桌面、嵌入式和服务器应用程序的基本平台。它包括Java编程语言和相关的工具、库、API等。Java SE提供了基本的Java核心库,如集合框架、输入/输出、并发等,以及支持图形用户界面(GUI)的库。
-
Java EE(Java Enterprise Edition):
- Java EE是构建企业级应用程序的Java平台扩展。它在Java SE的基础上添加了一系列的企业级规范和技术,以支持分布式计算、事务管理、消息队列等。Java EE为开发者提供了创建大规模、高度可扩展且具有强大功能的企业应用程序的工具和标准。
-
Java ME(Java Micro Edition):
- Java ME是专为嵌入式和移动设备(如手机、PDA)上的应用程序开发而设计的Java平台。它提供了一种在资源受限环境中运行的轻量级Java应用程序的方式。
Java EE的主要特性包括:
-
分布式计算: Java EE支持构建分布式应用程序,通过使用Enterprise JavaBeans(EJB)等组件模型,实现在不同计算节点上的组件交互。
-
事务管理: 通过Java Transaction API(JTA),Java EE提供了对分布式事务的支持,确保在复杂的业务流程中维持数据的一致性。
-
持久性: Java Persistence API(JPA)定义了对象与关系数据库之间的映射规范,简化了数据存储和检索的过程。
-
Web服务: Java EE包括对构建和消费Web服务的支持,使用JAX-RS和JAX-WS等API。
-
消息传递: 通过Java Message Service(JMS),Java EE允许应用程序在分布式环境中进行异步通信。
-
Web应用程序开发: Java EE提供了Servlets和JavaServer Pages(JSP)等技术,用于构建可扩展的Web应用程序。
-
安全性: Java EE定义了一套安全标准,包括身份验证、授权和加密,以确保企业级应用程序的安全性。
-
管理和部署: Java EE提供了用于管理和部署应用程序的工具和API,使得企业能够有效地管理其应用程序的生命周期。
总体而言,Java EE为企业级应用程序提供了一种规范化的、可扩展的开发和运行环境,支持复杂业务需求和大规模部署。通过遵循Java EE的规范,开发人员可以确保其应用程序在不同的Java EE兼容平台上运行,并利用企业级功能和服务。
Java EE 发展历程
-
初期整合:
Java EE最初是作为Java的企业扩展部分,被整合到核心JDK("核心JDK"通常指的是Java SE(Java Standard Edition))中。这个时期的Java主要关注桌面应用程序和小型应用的开发。 -
J2EE时期(Java 2 Platform Enterprise Edition):
在1999年,Java EE被分离成Java 2的一部分,被称为J2EE。这一版本引入了一系列的企业级规范和技术,支持分布式计算、事务管理、消息队列等。 -
Java EE时期:
到了2006年,Sun Microsystems(Java的创始公司)决定将J2EE重命名为Java EE,以反映它的企业级应用开发重点。这一时期见证了Java EE规范的不断完善和新功能的引入,以满足不断增长的企业级应用需求。 -
Java EE向Jakarta EE过渡:
在2017年,由于Oracle将Java EE捐赠给Eclipse基金会,Java EE面临了一个新的阶段。为了摆脱商业品牌的约束,Eclipse基金会组织了一次命名投票,结果是Jakarta EE。这标志着Java EE的开源社区接管,并且不再使用商标受限的Java EE名称。 -
Jakarta EE:
Jakarta EE是Java EE的继任者,继续提供一套用于企业级应用程序开发的规范。这一时期的发展主要由Eclipse基金会牵头,致力于在开源社区的支持下推动Java企业级技术的演进。Jakarta EE的版本更新和改进仍然遵循Java EE的传统,但有了更加开放和社区驱动的发展模式。
总体而言,Java EE和Jakarta EE的发展历程代表了Java在企业级应用领域的不断演进和创新,以适应不断变化的技术和市场需求。这一演进过程中的每个阶段都带来了新的特性、改进和开发者社区的参与。
JavaEE的前世今生:Jakarta EE 的前世今生 - MyBatis中文官网
Java EE 最主要的应用领域之一还是 Web 开发。Java EE 提供了一系列的规范和 API,使得开发者能够构建强大、可扩展、安全的企业级 Web 应用程序。
什么是Web开发?
Web 开发是指构建和维护能够通过互联网(全球广域网,也称为万维网)访问的应用程序和网站的过程。这些应用程序和网站可以通过各种设备的浏览器访问,如电脑、平板电脑和手机。Web 开发涉及多种技术和层面,通常包括以下几个方面:
-
前端开发(Front-end Development):
- 前端开发关注于构建用户在浏览器中看到和与之交互的部分。这包括 HTML、CSS 和 JavaScript 的使用,以及使用前端框架和库(如React、Angular、Vue.js等)来创建交互性和动态性的用户界面。
-
后端开发(Back-end Development):
- 后端开发涉及处理 Web 应用程序的服务器端逻辑。这包括处理数据库、用户认证、业务逻辑等任务。后端通常使用服务器端编程语言(如Java、Python、Node.js等)和框架(如Spring、Django、Express等)。
-
数据库管理:
- Web 应用程序通常需要与数据库进行交互以存储和检索数据。后端开发人员负责设计和管理与数据库的交互,使用数据库系统如MySQL、PostgreSQL、MongoDB等。
-
Web 服务器:
- Web 服务器是托管和提供 Web 应用程序的平台。常见的 Web 服务器包括Apache、Nginx等。它们负责接收用户请求并将其转发给后端处理,最后将结果发送回用户的浏览器。
-
网络安全:
- 网络安全是 Web 开发中至关重要的方面。这包括对用户数据的安全性、身份验证和授权的考虑,以及防范常见的网络攻击,如跨站脚本(XSS)和跨站请求伪造(CSRF)。
-
版本控制系统:
- 为了有效协作和管理代码,Web 开发人员使用版本控制系统(如Git)来跟踪和管理代码的变化。
Web 开发是一个涉及多个技术领域的复杂过程,需要前后端协同工作,以创建功能强大、用户友好的 Web 应用程序。
Web网站的工作流程
当前,用户在PC端应用开发方面主要采用两种结构模式,即C/S(Client/Server)和B/S(Browser/Server)结构。
C/S架构,即客户端/服务器结构,常见于应用如QQ、CCTALK以及各类网络游戏等。这类应用通常需要用户在本地安装专用客户端,并与服务器进行直接的网络通信。
另一方面,B/S架构,即浏览器/服务器结构,包括Web浏览器、服务器程序和数据库服务三个部分。相较于C/S架构,B/S架构是对其一种改进,其核心业务逻辑由服务器程序处理,使得用户只需通过浏览器完成所有操作,从而显著降低了客户端的维护成本。
这种结构模式适用于对客户端要求不高,且希望减轻客户端维护负担的应用场景,如Web应用和电子邮件服务等。选择合适的结构模式通常取决于应用程序的具体需求和特点。
具体来说,C/S(Client/Server)和 B/S(Browser/Server)是两种不同的应用程序架构模式,它们主要指导了应用程序的组织结构和用户交互方式。
-
C/S架构(Client/Server):
- 定义: C/S架构是指客户端(Client)和服务器(Server)之间存在直接的交互。客户端是安装在用户计算机上的应用程序,而服务器端则是运行在服务器上的应用程序。
- 特点:
- 客户端需要安装专门的应用程序,通常与服务器进行直接通信。
- 适用于需要强大计算和数据处理能力的应用,例如大型数据库应用、图形设计软件等。
- 客户端通常与服务器端有较强的耦合,对不同操作系统可能需要独立的客户端应用。
-
B/S架构(Browser/Server):
- 定义: B/S架构是指浏览器(Browser)与服务器(Server)之间的交互。用户通过浏览器访问应用程序,而应用程序的核心逻辑则在服务器上执行。
- 特点:
- 客户端只需要一个浏览器,不需要安装额外的应用程序,可以跨平台使用。
- 适用于对客户端要求不高,主要逻辑在服务器端执行的应用,如Web应用、电子邮件服务等。
- 可以降低客户端的维护成本,因为所有应用逻辑都在服务器上维护和更新。
总体而言,C/S架构和B/S架构各有优劣,选择取决于应用程序的需求和特点。C/S架构适用于对性能和功能要求较高的应用,而B/S架构适用于对跨平台兼容性和维护成本有较高要求的应用。近年来,随着Web技术的发展,B/S架构在许多场景中得到了广泛应用。
架构 | 优点 | 缺点 |
---|---|---|
C/S |
|
|
B/S |
|
|
我们以后的JavaEE项目应该大部分都是基于 B/S架构的……
典型的前后端分离的 Web 开发流程,可以简单概括为以下步骤:
-
通过浏览器访问前端程序: 用户通过浏览器访问前端程序,这可能是一个由 HTML、CSS、JavaScript 等构建的 Web 应用。
-
前端程序返回前端代码: 前端程序向浏览器返回相应的前端代码。这些代码包括用户界面的布局和交互逻辑,以及可能需要在后续步骤中向后端请求数据的代码。
-
前端程序调用后端程序获取数据: 如果前端程序需要与后端进行交互,例如获取动态数据或执行某些业务逻辑,它会发起对后端程序的请求。这通常通过 AJAX 请求或其他类似的技术来实现。
-
后端返回数据: 后端程序接收到前端的请求,处理请求并返回相应的数据。这可能涉及到与数据库的交互、业务逻辑的处理等。
-
前端根据后端数据进行页面渲染: 前端程序收到后端返回的数据后,根据数据进行页面的渲染。这可能包括更新页面上的内容、展示新数据、或执行其他与用户界面相关的操作。
整个过程中,前端负责用户界面的呈现和交互,而后端负责处理业务逻辑和数据存取。这种前后端分离的架构有利于代码的模块化和团队协作。
什么是框架
随着技术的发展,不论是后端还是前端开发,很少直接使用原生代码,而是采用各种开发框架。在后端开发中,常见的后端框架包括Spring、SpringBoot、Mybatis等,而前端则常用Vue、React、Angular等框架。这些框架都共享一个特点:简单且高效,显著提高了开发效率。
框架的定义
框架(Framework) 指的是一套预先编写好的代码,为开发者提供通用功能,用于解决特定问题的软件架构。框架包括库、工具集、编码规范等,旨在简化开发流程、提高效率。
-
应用领域: 后端框架用于服务器端应用程序的构建,而前端框架用于构建用户界面。
-
示例框架: 后端框架有Spring、SpringBoot、Mybatis,前端框架有Vue、React、Angular。
源于建筑行业的类比
最早的“框架”一词源于建筑行业,指一个框子(约束性)和一个架子(支撑性)。在计算机领域,框架是一种基本概念上的结构,用于解决复杂问题,可看作为应用开发者定制的应用框架。
类比: 在盖房子中,框架就像一幢半成品的房子,你可以理解为⼀个毛坯房。 有了这个毛坯房之后,你就可以把它装修成自己想要的样子。没有这个毛坯房的话, 你就需要自己盖房子主体结构等。
框架的作用
-
简化开发: 提供通用解决方案,使开发者专注于业务逻辑,减少从零开始构建基本功能的工作。
-
提高效率: 提供开发过程中需要的工具和库,减少冗余代码的编写,提高开发效率。
-
约定优于配置: 遵循规范和约定,减少配置的繁琐性,提供一种一致和可预测的开发体验。
-
可扩展性: 支持插件和扩展,使开发者可以根据需求灵活地扩展框架的功能。
-
提高可维护性: 结构化的框架有助于代码的组织和维护,促进项目的可维护性和协作性。
在前端和后端开发中,不同的框架被设计用于不同的用途,例如前端框架(Vue、React、Angular)用于构建用户界面,而后端框架(Spring、Express、Django)则用于服务器端应用程序的构建。
Java EE 框架学习概览
在Java EE课程中,涉及了四个关键框架,分别是 Spring、Spring Boot、Spring MVC 和 Mybatis。这些框架在Java EE开发中扮演着不同的角色,提供了丰富的功能,使得企业级应用程序的开发更加高效和便捷。
1. Spring
Spring框架: 是一个综合性的企业级Java应用开发框架,提供了广泛的基础设施支持和丰富的功能集,包括IoC(控制反转)、AOP(面向切面编程)、事务管理等。
- 核心特性:
- IoC容器:通过IoC容器管理Java对象的生命周期和依赖关系。
- AOP:通过AOP实现横切关注点,提高模块化和可维护性。
- 数据访问:简化数据库操作,支持声明式事务管理。
- MVC框架:提供灵活的MVC框架,支持构建Web应用。
2. Spring Boot
Spring Boot框架: 是在Spring基础上构建的快速开发框架,简化了Spring应用程序的搭建和配置,通过约定大于配置的原则,加速了应用程序的开发。
- 主要特点:
- 自动配置:根据项目的依赖和目标平台自动配置应用程序。
- 内嵌服务器:集成了常用的服务器,如Tomcat,可直接打包成可执行JAR文件。
- 简化开发:通过默认值和约定减少配置,提高开发效率。
3. Spring MVC
Spring MVC框架: 是Spring框架的一部分,提供了基于MVC(模型-视图-控制器)的Web应用程序开发支持。
- 关键组件:
- 控制器(Controller):处理用户请求和构建响应。
- 视图(View):负责渲染页面和呈现数据。
- 模型(Model):包含应用程序数据和业务逻辑。
4. Mybatis
Mybatis框架: 是一个持久层框架,用于简化数据库操作,通过XML或注解配置,将Java对象映射到数据库表。
- 核心概念:
- 映射文件:定义了Java对象与数据库表之间的映射规则。
- SQL语句:通过SQL语句实现数据库的增删改查操作。
- 持久层:封装了底层数据库的访问,提供了方便的API进行数据操作。
框架之间的关系
-
Spring家族: Spring、Spring Boot、Spring MVC 三者相互关联,Spring为基础,Spring Boot简化配置,Spring MVC用于构建Web应用。
-
Mybatis与Spring的整合: Mybatis作为持久层框架,可以与Spring整合,通过Spring管理事务,简化数据库操作。
这些框架的综合使用使得Java EE开发更加高效、灵活,并提供了强大的功能和工具,适用于各种企业级应用的开发需求。