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

目录

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.mzph.cn/news/153257.shtml

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

相关文章

基于SpringBoot+Mybatis plus+React.js实现条件选择切换搜索功能

笔记/朱季谦 在写React前端逻辑时,经常遇到可以切换不同条件的列表查询功能,例如下边截图这样的,其实,这块代码基本都一个逻辑,可以一次性将实现过程记录下来,待以后再遇到时,直接根据笔记复用…

PgSQL技术内幕-Bitmap Index Scan

PgSQL技术内幕-Bitmap Index Scan 1、简介 Bitmap索引扫描是对索引扫描的一个优化,通过建立位图的方式将原来的随机堆表访问转换成顺序堆表访问。主要分为两点:1)管理每个Bitmap的hash slot没用完时,每个Bitmap代表每个heap页中满…

在VS Code中查看Word, PDF, Excel

文章目录 vscode-pdfExcel Vieweroffice viewerVS Code神级插件 vscode-pdf 这年头连Edge浏览器都支持pdf阅读,那么VS Code不支持显然不太合适。搜索并安装vscode-pdf之后,就可以非常便捷地查看pdf文档了。vscode-pdf是基于pdf.js开发的阅读插件&#x…

计算机毕业设计python企业员工人事管理系统vue

管理员: 1.员工资料管理:查看员工列表,添加职工,修改信息(搜索员工使用模糊查询) 2.部门管理:查看部门列表,修改信息,添加新部门 3.职工考勤管理:添加&#x…

BUUCTF [BJDCTF2020]鸡你太美 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 得到的 flag 请包上 flag{} 提交。来源: https://github.com/BjdsecCA/BJDCTF2020 密文: 下载附件,解压得到两个.gif图片。 第一个gif图片: 第二个gif图片无法打开。…

vue3-响应式核心

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue3-响应式核心 响应式核心 目录 响应式核心 3.1ref() 3.2computed () 3.3 reactive() 3.4 …

【代码随想录】算法训练计划27

回溯 1、39. 组合总和 题目: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的…

【Java】多线程-wait/notify

1、wait和notify Java的多线程中,线程的执行顺序和时间都是不定的。为了控制线程的调度顺序,前面我们引入了join()方法。 但是join()只能在线程执行完后,才能执行其他线程,有没有什么方法可以在线程执行顺序中来调度其他线程呢&…

CTF-PWN-小tips

文章目录 overflowscanfgetreadstrcpystrcat Find string in gdbgdbgdb peda Binary ServiceFind specific function offset in libc手工自动 Find /bin/sh or sh in library手动自动 Leak stack addressFork problem in gdbSecret of a mysterious section - .tlsPredictable …

【腾讯云 HAI域探秘】高性能服务器引领AI革新浪潮:从AI绘画、知识问答到PyTorch图像分类、视频检测的全方位探索

目录 1 HAI(高性能应用服务)简介2 HAI的应用场景2.1 HAI在AI作画中的灵活性与效率2.2 深入探索LLM语言模型的应用与性能2.3 HAI支持的AI模型开发环境与工具 3 基于stable difussio的AI 绘画应用实践3.1 使用AI模型中的stable diffusion模型服务3.2 设置和…

10个好用的Mac数据恢复软件推荐—恢复率高达99%

如果您正在寻找最好的 Mac 数据恢复软件来检索意外删除或丢失的文件,那么这里就是您的最佳选择。 我们理解,当您找不到 Mac 计算机或外部驱动器上保存的一些重要文件时,会感到多么沮丧和绝望。这些文件非常珍贵,无论出于何种原因…

【寒武纪(14)】硬件系统由标量指令、向量指令、张量指令、访存指令构成

我们在文档《Cambricon-BANG-C-Developer-Guide-EN-v4.5.1》的build-in function 发现,存在三种计算:矩阵乘法、标量类型、向量。 查阅《Cambricon-BANG-C-CProgramming-Guide-CN-v1.5.0.pdf》可知,硬件系统由标量指令、向量指令、张量指令、…

vscode设置前进、后退快捷键

前言 在我们使用vscode编写程序时,经常需要在不同的文件之间跳来跳去,如果只是依靠个人记忆去操作会显得非常不方便。本文介绍如何设置vscode的前进、后退快捷键。 1 vscode设置前进、后退快捷键 点击“设置”图标,然后点击“键盘快捷方式…

各类软件docker安装

docker Docker 要求 CentOS 系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本: uname -r 3.10.0-1062.1.2.el7.x86_64 安装 Docker: 安装 Docker:yum -y install dockerkafka和zookeeper docker pull wurstmei…

python刷题笔记1(42例题)

1. split()函数 str.split([sep [, maxsplit]]) 分割字符串,返回一个数组 2. 判断子串 # 判断子串是否在主串里面,是则输出“Yes”,否则输出“No” str1 input("子串:") str2 input("主串:") if str1 in s…

通信原理板块——差错控制编码或纠错编码

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、背景 数字信号在传输过程中&…

什么是策划能力?如何提高策划能力?

什么是策划能力? 通常我们理解的策划能力,大多指的是策划活动,比如举办一次活动先要进行活动策划,形成具体的行动方案,然后开展组织人力物力等资源,最终落地实施。策划能力包含活动策划,但又不…

vscode设置代码模板

一键生成vue3模板代码 效果演示 输入vue3 显示快捷键 按回车键 一键生成自定义模板 实现方法 进入用户代码片段设置 选择片段语言 vue.json输入自定义的代码片段 prefix是触发的内容,按自己的喜好来就行; body是模板代码,写入自己需要的…