JavaEE进阶(1)Java EE 简述(Java EE 发展历程、什么是Web开发? Web网站的工作流程、什么是框架?Java EE 框架学习概览)

news2024/12/25 13:56:21

目录

Java EE 简述

Java EE 发展历程

什么是Web开发?

Web网站的工作流程

什么是框架

框架的定义

源于建筑行业的类比

框架的作用

Java EE 框架学习概览

1. Spring

2. Spring Boot

3. Spring MVC

4. Mybatis

框架之间的关系


Java EE 简述

Java EE是Java平台的企业级扩展,为企业级应用程序提供了一套规范和技术标准。它建立在Java SE(Java Platform Standard Edition)的基础之上,通过引入额外的API和服务,以支持开发、部署和管理大规模、复杂的企业级应用。

  1. Java SE(Java Standard Edition):

    • Java SE是Java平台的标准版本,是用于开发和部署桌面、嵌入式和服务器应用程序的基本平台。它包括Java编程语言和相关的工具、库、API等。Java SE提供了基本的Java核心库,如集合框架、输入/输出、并发等,以及支持图形用户界面(GUI)的库。
  2. Java EE(Java Enterprise Edition):

    • Java EE是构建企业级应用程序的Java平台扩展。它在Java SE的基础上添加了一系列的企业级规范和技术,以支持分布式计算、事务管理、消息队列等。Java EE为开发者提供了创建大规模、高度可扩展且具有强大功能的企业应用程序的工具和标准。
  3. Java ME(Java Micro Edition):

    • Java ME是专为嵌入式和移动设备(如手机、PDA)上的应用程序开发而设计的Java平台。它提供了一种在资源受限环境中运行的轻量级Java应用程序的方式。

 

Java EE的主要特性包括:

  1. 分布式计算: Java EE支持构建分布式应用程序,通过使用Enterprise JavaBeans(EJB)等组件模型,实现在不同计算节点上的组件交互。

  2. 事务管理: 通过Java Transaction API(JTA),Java EE提供了对分布式事务的支持,确保在复杂的业务流程中维持数据的一致性。

  3. 持久性: Java Persistence API(JPA)定义了对象与关系数据库之间的映射规范,简化了数据存储和检索的过程。

  4. Web服务: Java EE包括对构建和消费Web服务的支持,使用JAX-RS和JAX-WS等API。

  5. 消息传递: 通过Java Message Service(JMS),Java EE允许应用程序在分布式环境中进行异步通信。

  6. Web应用程序开发: Java EE提供了Servlets和JavaServer Pages(JSP)等技术,用于构建可扩展的Web应用程序。

  7. 安全性: Java EE定义了一套安全标准,包括身份验证、授权和加密,以确保企业级应用程序的安全性。

  8. 管理和部署: Java EE提供了用于管理和部署应用程序的工具和API,使得企业能够有效地管理其应用程序的生命周期。

总体而言,Java EE为企业级应用程序提供了一种规范化的、可扩展的开发和运行环境,支持复杂业务需求和大规模部署。通过遵循Java EE的规范,开发人员可以确保其应用程序在不同的Java EE兼容平台上运行,并利用企业级功能和服务。

Java EE 发展历程

  1. 初期整合:

    Java EE最初是作为Java的企业扩展部分,被整合到核心JDK("核心JDK"通常指的是Java SE(Java Standard Edition))中。这个时期的Java主要关注桌面应用程序和小型应用的开发。
  2. J2EE时期(Java 2 Platform Enterprise Edition):

    在1999年,Java EE被分离成Java 2的一部分,被称为J2EE。这一版本引入了一系列的企业级规范和技术,支持分布式计算、事务管理、消息队列等。
  3. Java EE时期:

    到了2006年,Sun Microsystems(Java的创始公司)决定将J2EE重命名为Java EE,以反映它的企业级应用开发重点。这一时期见证了Java EE规范的不断完善和新功能的引入,以满足不断增长的企业级应用需求。
  4. Java EE向Jakarta EE过渡:

    在2017年,由于Oracle将Java EE捐赠给Eclipse基金会,Java EE面临了一个新的阶段。为了摆脱商业品牌的约束,Eclipse基金会组织了一次命名投票,结果是Jakarta EE。这标志着Java EE的开源社区接管,并且不再使用商标受限的Java EE名称。
  5. 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 开发涉及多种技术和层面,通常包括以下几个方面:

  1. 前端开发(Front-end Development):

    • 前端开发关注于构建用户在浏览器中看到和与之交互的部分。这包括 HTML、CSS 和 JavaScript 的使用,以及使用前端框架和库(如React、Angular、Vue.js等)来创建交互性和动态性的用户界面。
  2. 后端开发(Back-end Development):

    • 后端开发涉及处理 Web 应用程序的服务器端逻辑。这包括处理数据库、用户认证、业务逻辑等任务。后端通常使用服务器端编程语言(如Java、Python、Node.js等)和框架(如Spring、Django、Express等)。
  3. 数据库管理:

    • Web 应用程序通常需要与数据库进行交互以存储和检索数据。后端开发人员负责设计和管理与数据库的交互,使用数据库系统如MySQL、PostgreSQL、MongoDB等。
  4. Web 服务器:

    • Web 服务器是托管和提供 Web 应用程序的平台。常见的 Web 服务器包括Apache、Nginx等。它们负责接收用户请求并将其转发给后端处理,最后将结果发送回用户的浏览器。
  5. 网络安全:

    • 网络安全是 Web 开发中至关重要的方面。这包括对用户数据的安全性、身份验证和授权的考虑,以及防范常见的网络攻击,如跨站脚本(XSS)和跨站请求伪造(CSRF)。
  6. 版本控制系统:

    • 为了有效协作和管理代码,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)是两种不同的应用程序架构模式,它们主要指导了应用程序的组织结构和用户交互方式。

  1. C/S架构(Client/Server):

    • 定义: C/S架构是指客户端(Client)和服务器(Server)之间存在直接的交互。客户端是安装在用户计算机上的应用程序,而服务器端则是运行在服务器上的应用程序。
    • 特点:
      • 客户端需要安装专门的应用程序,通常与服务器进行直接通信。
      • 适用于需要强大计算和数据处理能力的应用,例如大型数据库应用、图形设计软件等。
      • 客户端通常与服务器端有较强的耦合,对不同操作系统可能需要独立的客户端应用。
  2. 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 开发流程,可以简单概括为以下步骤:

  1. 通过浏览器访问前端程序: 用户通过浏览器访问前端程序,这可能是一个由 HTML、CSS、JavaScript 等构建的 Web 应用。

  2. 前端程序返回前端代码: 前端程序向浏览器返回相应的前端代码。这些代码包括用户界面的布局和交互逻辑,以及可能需要在后续步骤中向后端请求数据的代码。

  3. 前端程序调用后端程序获取数据: 如果前端程序需要与后端进行交互,例如获取动态数据或执行某些业务逻辑,它会发起对后端程序的请求。这通常通过 AJAX 请求或其他类似的技术来实现。

  4. 后端返回数据: 后端程序接收到前端的请求,处理请求并返回相应的数据。这可能涉及到与数据库的交互、业务逻辑的处理等。

  5. 前端根据后端数据进行页面渲染: 前端程序收到后端返回的数据后,根据数据进行页面的渲染。这可能包括更新页面上的内容、展示新数据、或执行其他与用户界面相关的操作。

整个过程中,前端负责用户界面的呈现和交互,而后端负责处理业务逻辑和数据存取。这种前后端分离的架构有利于代码的模块化和团队协作。

什么是框架

随着技术的发展,不论是后端还是前端开发,很少直接使用原生代码,而是采用各种开发框架。在后端开发中,常见的后端框架包括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开发更加高效、灵活,并提供了强大的功能和工具,适用于各种企业级应用的开发需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1224483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谈谈如何写作(二)

序言 没有什么比一套好理论更有用了。——库尔特勒温 谈谈如何写作系列今天进入第二篇,第一篇请速戳:谈谈如何写作(一) 今天,博主从如何写报告讲起。 Q:如何写报告 如何写报告呢? 当每位盆友接到…

802.11-2020协议学习__专题__TxTime-Calculation__HR/DSSS

802.11-2020协议学习__专题__TxTime-Calculation__HR/DSSS 16.2.2 PPDU format16.2.2.1 General16.2.2.2 Long PPDU format16.2.2.3 Short PPDU format 16.3.4 HR/DSSS TXTIME calculation PREV: TBD NEXT: TBD 16.2.2 PPDU format 16.2.2.1 General 定…

【2023春李宏毅机器学习】生成式学习的两种策略

文章目录 1 各个击破2 一步到位3 两种策略的对比 生成式学习的两种策略:各个击破、一步到位 对于文本生成:把每一个生成的元素称为token,中文当中token指的是字,英文中的token指的是word piece。比如对于unbreakable,他…

统计量及抽样分布

1.常用统计量 (1)样本均值 反映总体X数学期望的信息,是最常用的统计量。 (2)样本方差 反映总体X方差的信息。 (3)样本变异系数 反映总体变异系数C的信息,用来刻画离散程度。 &am…

数据结构与算法【堆】的Java实现

前言 之前已经说过堆的特点了,具体文章在数据结构与算法【队列】的Java实现-CSDN博客。因此直接实现堆的其他功能。 建堆 所谓建堆,就是将一个初始的堆变为大顶堆或是小顶堆。这里以大顶堆为例。展示如何建堆。 找到最后一个非叶子节点从后向前&…

RT-Thread基于STM32H743的网络通信调试

使用STM32H743开发网络通信,本以为会很简单,实际却遇到好多问题,记录一下,以备后续查看。 1.新建工程,系统版本选择的是4.1.1,芯片型号是STM32H743IIK6. 2.修改系统时钟,使用外部25MHz晶振&…

linux环境下启动应用的不同方式对比分析

大家好,我是G探险者。 平时我们在Linux环境下启动Java应用程序时。可能会选择在前台或后台运行它们。但是这两者启动命令的各种参数含义是什么意思呢,今天我们就来聊聊,并分析一下他们的特点。 1. 前台启动 参数: java: Java程…

图像分类(二) 全面解读复现ZFNet

网络详解 前言:ZF网络是2013年提出的,网上有很多关于它的介绍和讲解,但是很多内容讲的不太好(个人感觉),于是花时间收集了一些资料,整理了一些比较好的文章,从头到尾把ZFNet说了一遍…

ControlNet原理及应用

《Adding Conditional Control to Text-to-Image Diffusion Models》 目录 1.背景介绍 2.原理详解 2.1 Controlnet 2.2 用于Stable Diffusion的ControlNet 2.3 训练 2.4 推理 3.实验结果 3.1 定性结果 3.2 消融实验 3.3 和之前结果比较 3.4 数据集大小的影响 4.结…

最常用的结构体初始化方式

结构体最常用的初始化方式就是用memset把这块区域清0 注意不能这么写 STU stu[5]; stu (STU*)malloc(sizeof(stu)); 数组名不允许被赋值,它只是个表达式

【Python】Loguru模块更简洁的日志记录库

Loguru: 更优雅的日志记录解决方案! loguru 是一个Python 简易且强大的第三方日志记录库,该库旨在通过添加一系列有用的功能来解决标准记录器的注意事项,从而减少 Python 日志记录的痛苦。 使用自带自带的 logging 模块的话,则需要…

ZHUTI主提2024春夏 聆听「宁静的声音」

将自然艺术触达生活 生活与艺术实践活动 ZHUTI主提2024春夏艺术活动「宁静的声音」,将自然艺术真实的触达生活为核心,将原野聚会、黑胶音乐、插花、咖啡、食物、舞蹈、服装等艺术与生活的元素组合在这场芦苇荡中,用一场兼具无穷畅想和独特审…

μC/OS-II---事件标志组管理1(os_flag.c)

目录 事件标志组创建事件标志组删除事件标志组获取/等待当任务要与多个事件同步时,就要使用事件标志组。一个事件标志就是一个二值信号,事件标志组是若干二值信号的组合。使用事件标志组同步任务分为独立性同步和关联性同步。事件标志组创建 flags:事件标志组的初始值。OS_F…

Python中的实例属性和类属性

在这篇文章中,我们将探讨Python中的类是如何工作的,主要介绍实例和类的属性。这些属性是什么,它们之间的区别,以及创建和利用它们的python方法。 类属性与实例属性 首先,我们需要知道什么是实例。实例是属于类的对象。…

麒麟 ZYJ 服务器软件适配 参考示例

一、zyj 环境简介 1. ZYJ 概述 国产化 SMZYJ 是由国家 BM 主管部门鉴定并批准生产使用的国内自主开发的 整机 JM 国标设备,设备采用了自主设备基础硬件(飞腾、国科微等)、安全硬 件自主固件(昆仑等)自主 SM 专用操作…

Linux嵌入式I2C协议笔记

硬件: 1.I2C结构 在一个SOC中有一个或者多个I2C控制器,一个I2C控制器可以连接一个或多个I2C设备。 I2C总线需要两条线,时钟线SCL和数据线SDA 2.I2C传输数据格式 开始信号(S):SCL为高电平时,SDA山高电平向低电平跳变,开始传送数据。结束信号(P):SCL为高电平时,SDA…

【算法萌新闯力扣】:找到所有数组中消失对数字

力扣热题:找到所有数组中消失对数字 开篇 这两天刚交了蓝桥杯的报名费,刷题的积极性高涨。算上打卡题,今天刷了10道算法题了,题目都比较简单,挑选了一道还不错的题目与大家分享。 题目链接:448.找到所有数组中消失对…

【C++】类和对象(7)--友元, static成员

目录 一 友元 1 友元概念 2 友元函数 3 友元类 二 static成员 1 概念 2 用法 3 static成员特性 4 例题 一 友元 1 友元概念 友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以 友元不宜多用。 …

【C/C++笔试练习】继承和派生的概念、虚函数的概念、派生类的析构函数、纯虚函数的概念、动态编译、多态的实现、参数解析、跳石板

文章目录 C/C笔试练习选择部分(1)继承和派生的概念(2)程序分析(3)虚函数的概念(4)派生类的析构函数(5)纯虚函数的概念(6)动态编译&…

安装银河麒麟linux系统docker(docker-compose)环境,注意事项(一定能解决,有环境资源)

1:安装docker环境必须使用麒麟的版本如下 2:使用docker-compse up -d启动容器遇到的文件 故障1:如果运行docker-compose up 报“Cannot create redo log files because data files are corrupt or the database was not shut down cleanly after creating the data files”…