【JavaEE】JavaEE、web 开发、框架(Spring) 、Maven

文章目录

  • 一、JavaEE 发展历程
  • 二、什么是 web 开发
    • 1、什么是 web 开发?
    • 2、web 网站的工作流程
  • 三、框架
    • 1、什么是框架?
    • 2、为什么要学框架?
    • 3、框架的优点(Spring Boot VS Servlet)
  • 四、Maven

一、JavaEE 发展历程

JavaSE: Java标准开发,适合所有行业,主要是 Java 语法。
JavaEE: Java企业开发,主要面向企业开发。

Java EE(Java Platform Enterprise Edition),Java 平台企业版。是 JavaSE 的扩展,用于解决企业级的开发需求,所以也可以称之为是一组用于企业开发的Java技术标准。所以,学习JavaEE 主要是学习 Java 在企业中如何应用。

  1. 最早的时候,Java 企业扩展还是核心 JDK 的⼀部分(核心 JDK 通常指 Java SE)
  2. 到了 1999 年,Java 企业扩展被剥离出 Java SE,成为了 Java 2的⼀部分,也就是 J2EE,或者Java 2 平台企业版(Java 2 Platform Enterprise Edition)。J2EE 这个称呼⼀直维持到2006年。
  3. 2006年,J2EE 被重命名为 Java EE,或者说 Java 平台企业版(Java Platform Enterprise Edition)。
  4. 2017年,Oracle 决定将 Java EE 捐赠给 Eclipse 基金会,但是附加条件是不允许开源组织使用Java的名号。
    这就迫使 Eclipse 基金会不得不对JavaEE进行改名。但是,在给项目命名的时候,Eclipse基金会⼀筹莫展。为了起出合适的名字,Eclipse决定开始⺠意投票,并给出了 “Jakarta EE” 和 “Enterprise Profile” 两个备选名字。最后,Jakarta 以 64.4% 的票数获胜。从此之后,Java EE 正式更名为 Jakarta EE(雅加达)。
  5. 2018年3月更名为 Jakarta EE
    但其实Jakarta这个名字并不新鲜,⼀个早期的 Apache 开源项⽬就叫 Jakarta,也是为Java而生。从民意投票上来看,Jakarta 这个名字其实也是重新回归⼤众了。
    Jakarta EE 的前世今生参考:http://www.mybatis.cn/archives/857.html

二、什么是 web 开发

Java 更多场景是业务开发,更狭义点可以理解为 web 开发。

1、什么是 web 开发?

web(World Wide Web(www))即全球广域网,也称为万维网。简单来说,就是可以通过浏览器来和我们的程序进行交互,⽐如京东,淘宝,天猫,美团等网站项目。

2、web 网站的工作流程

目前用户对PC端应用的开发结构模式主要分为 C/S 和 B/S 结构。

CS 即 Client/Server(客户机/服务器)结构。常见的 C/S 架构的应用比如 QQ,微信,各种网络游戏等等,⼀般需要安装并且与服务器进行网络通信的都属于此类。

BS 即 Browser/Server(浏览器/服务器)结构。B/S 架构全称是浏览器/服务器(Browser/Server)结构,分为 Web 浏览器、服务器程序、数据库服务三部分,可以理解为是对 C/S 架构⼀种改进,由于所有的业务逻辑都由服务器程序处理,所以客户端仅使用浏览器就可以完成所有操作,大大降低了客户端的维护成本。

架构优点缺点
C/S① 大部分业务都可以在客户端完成,充分利用本地的计算机资源;② 响应速度快;③ 个性化定制能力强;④ 面向相对固定的用户群,对信息安全的控制能力强① 需要安装客户端才能使用;② 维护成本高,任何⼀台电脑上的客户端出现问题都需要进行维护,升能过程繁琐
B/S① 客户端零维护,只需要安装⼀个浏览器即可;② 所有业务都集中在服务器端,业务扩展非常方便;③ 维护成本低,只需要维护服务器即可① 服务器安全与业务处理能力需要花费很大精力与成本;② 不同浏览器支持不尽人意

B/S 架构

  1. 通过浏览器访问前端程序,前端程序返回前端代码
  2. 前端程序调用后端程序,进行数据的获取(也可能由浏览器进行访问)
  3. 后端返回数据后,前端根据后端返回的数据进行页面渲染,显示页面

三、框架

1、什么是框架?

随着技术的发展,无论是后端开发还是前端开发,开发的时候都很少使用原生的代码,比如:JDBC、JS 等。取而代之的是各种开发框架,如:后端框架:Spring,SpringBoot,Mybatis等,前端常用的框架:Vue、Node等。这些框架都有⼀个共同的特点,就是简单、高效,这极大的提高了我们的开发效率。

那什么是框架呢?
框架(Framework),意思是框架、机制、准则。最早是源于建筑行业,是一个框子——指其约束性,也是一个架子指其支撑性,是一个基本概念上的结构,用于去解决或者处理复杂的问题。在计算机领域,可以看做是为应用开发者定制的应用骨架。

通俗的来讲:框架是实现某种功能的半成品,他提供了⼀些常用的工具类,我们在框架的基础上,可以更加高效的进行开发。也就是一些程序员把之前你需要写的,一些复杂的功能写好了,并且封装了起来,放在那里,你只需要调用他提供的接口就可以实现⼀些之前你需要花费很大功力才能实现的功能。框架就是一个封装了很多功能的东西,我们可以使用框架里的内容,然后也可以自定义一些自己的东西,就像继承重写一样。

Servlet 就是一个框架,Spring、Spring Boot、Spring MVC、Mybatis 都是一个框架。但是 Servlet 是一个旧一点的框架,Spring 开发比他高效的多,所以 Servlet 现在基本上不用了。而 Spring、Spring Boot、Spring MVC 可以看做是一家人,它们都是 Spring 家族的产品。Mybatis 是一个持久层框架,主要是用来帮助我们更好的操作数据库,通俗的来讲就是数据存在内存中只要服务器重启就会被清除,那么我们将数据存入硬盘里,也就是数据库,这样子就算服务器重启,内存中的数据被清除,我们也可以从数据库里面拿到原来的数据,这就是持久化的意思,而 Mybatis 就是一个让我们更好的来操作数据库的框架。

2、为什么要学框架?

  1. 学习框架相当于从 “小作坊” 到 “工厂” 的升级,小作坊什么都要自己做,工厂是组件式装配,特点就是高效。
  2. 框架更加易用、简单且高效。

3、框架的优点(Spring Boot VS Servlet)

使用 Spring Boot 项目框架相比于 Servlet 所具备的以下优点:

  1. 无需配置 Tomcat,点击 “运行” 按钮就可以运行项目,Spring Boot 内置了 Web 容器(可直接运行)。
  2. 快速添加外部 jar 包。
  3. 快速发布项目(使用 java -jar 方式就可以发布)。
  4. 对象自动装配。

四、Maven

这是作者写的 Maven 详解:https://blog.csdn.net/2301_79765510/article/details/144039274,所以本文就不详细介绍了,可以移步 Maven 详解篇了解 Maven

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【RISC-V CPU debug 专栏 2 -- Debug Module (DM), non-ISA】

文章目录 调试模块(DM)功能必须支持的功能可选支持的功能兼容性要求规模限制Debug Module Interface (DMI)总线类型地址与操作地址空间控制机制Debug Module Interface Signals请求信号响应信号信号流程Reset Control复位控制方法全局复位 (`ndmreset`)Hart 复位 (`hartreset…

Scala学习记录,全文单词统计

package test32 import java.io.PrintWriter import scala.io.Source //知识点 // 字符串.split("分隔符":把字符串用指定的分隔符,拆分成多个部分,保存在数组中) object test {def main(args: Array[String]): Unit {//从文件1.t…

使用 Certbot 为 Nginx 自动配置 SSL 证书

1.安装Certbot和Nginx插件 sudo apt-get update sudo apt-get install certbot python3-certbot-nginx 2.获取和安装证书 运行Certbot自动安装SSL证书。注意替换 your_domain sudo certbot --nginx -d your_domain Certbot将自动与Lets Encrypt的服务器通信,验证域…

Java之深入理解HashMap

Java之深入理解HashMap 引言 HashMap是Java程序员使用频率最高的一种映射&#xff08;<Key,Value>键值对&#xff09;数据结构&#xff0c;它继承自AbstractMap&#xff0c;又实现了Map类。 本文将深入源码解析一下HashMap的底层原理。 数据结构 HashMap底层通过维护…

HTTP 探秘之旅:从入门到未来

文章目录 导言&#xff1a;目录&#xff1a;第一篇&#xff1a;HTTP&#xff0c;互联网的“快递员”第二篇&#xff1a;从点开网页到看到内容&#xff0c;HTTP 究竟做了什么&#xff1f;第三篇&#xff1a;HTTP 的烦恼与进化史第四篇&#xff1a;HTTP 的铠甲——HTTPS 的故事第…

Docker 容器网络创建网桥链接

一、网络&#xff1a;默认情况下&#xff0c;所有的容器都以bridge方式链接到docker的一个虚拟网桥上&#xff1b; 注意&#xff1a;“172.17.0.0/16”中的“/16”表示子网掩码的长度为16位&#xff0c;它表示子网掩码中有16个连续的1&#xff0c;后面跟着16个连续的0。用于区分…

springboot366高校物品捐赠管理系统(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 高校物品捐赠管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff…

upload-labs 靶场(11~21)

免责声明 本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动&#xff0c;包括但不限于未经授权访问计算机系统、网络或数据。 作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何…

jenkins+github+springboot自动部署

背景&#xff1a; 最近看流水线有点意思&#xff0c;就说自己也搞一套。 预期效果&#xff1a; idea提交代码后&#xff0c;GitHub接收&#xff0c;jenkins自动部署。【后续加个自动部署时的代码检查、单元测试、安全测试、sonarqube】 思路分析: idea上的spring代码push到gi…

kafka数据在服务端时怎么写入的

学习背景 接着上篇&#xff0c;我们来聊聊kafka数据在服务端怎么写入的 服务端写入 在介绍服务端的写流程之前&#xff0c;我们先要理解服务端的几个角色之间的关系。 假设我们有一个由3个broker组成的kafka集群&#xff0c;我们在这个集群上创建一个topic叫做shitu-topic&…

Springboot——SseEmitter流式输出

文章目录 前言SseEmitter 简介测试demo注意点异常一 ResponseBodyEmitter is already set complete 前言 最近做AI类的开发&#xff0c;看到各大AI模型的输出方式都是采取的一种EventStream的方式实现。 不是通常的等接口处理完成后&#xff0c;一次性返回。 而是片段式的处理…

【深度学习|目标跟踪】StrongSORT 详解(以及StrongSORT++)

StrongSort详解 1、论文及源码2、DeepSORT回顾3、StrongSORT的EMA4、StrongSORT的NSA Kalman5、StrongSORT的MC6、StrongSORT的BOT特征提取器7、StrongSORT的AFLink8、StrongSORT的GSI模块 1、论文及源码 论文地址&#xff1a;https://arxiv.org/pdf/2202.13514 源码地址&#…

AntFlow 0.20.0版发布,增加多数据源多租户支持,进一步助力企业信息化,SAAS化

传统老牌工作流引擎比如activiti,flowable或者camunda等虽然功能强大&#xff0c;也被企业广泛采用&#xff0c;然后也存着在诸如学习曲线陡峭&#xff0c;上手难度大&#xff0c;流程设计操作需要专业人员&#xff0c;普通人无从下手等问题。。。引入工作流引擎往往需要企业储…

【设计模式系列】工厂方法模式(二十一)

一、什么是工厂方法模式 工厂方法模式&#xff08;Factory Method Pattern&#xff09;是一种创建型设计模式&#xff0c;其核心目的是定义一个创建对象的接口&#xff0c;但让实现这个接口的子类来决定实例化哪一个类。工厂方法模式让类的实例化推迟到子类中进行&#xff0c;…

HCIE:详解OSPF,从基础到高级特性再到深入研究

目录 前言 一、OSPF协议基本原理 简介 基本原理 OSPF路由器类型 OSPF网络类型 OSPF报文类型和封装 OSPF邻居的建立的维护 DR和BDR的选举 伪节点 LSDB的更新 OSPF的配置 二、OSPF的高级特性 虚连接&#xff08;Virtual-Link&#xff09; OSPF的LSA和路由选择 OSPF…

分享一款 Vue 图片编辑插件 (推荐)

&#x1f4a5;本篇文章给大家分享一款强大到没朋友的Vue图片编辑插件&#xff0c;可以对图片进行旋转、缩放、裁剪、涂鸦、标注、添加文本等&#xff0c;快来试试并收藏吧&#xff01;&#x1f495; 这是一款对图片进行旋转、缩放、裁剪、涂鸦、标注、添加文本在线处理的图片处…

【时间之外】IT人求职和创业应知【53】-东莞也转型

目录 新闻一&#xff1a;Freysa挑战赛&#xff1a;人类智慧与策略战胜AI&#xff0c;奖金高达4.7万美元 新闻二&#xff1a;中国生成式AI用户规模突破2.3亿&#xff0c;行业应用广泛 新闻三&#xff1a;2024东莞智能终端新技术推广会圆满举行&#xff0c;聚焦AI与智能终端融…

大模型在推荐系统中的应用

引言 推荐系统在现代互联网应用中扮演着至关重要的角色。从电商到社交媒体&#xff0c;再到音乐与视频流媒体服务&#xff0c;推荐系统通过分析用户行为数据和内容特征&#xff0c;为用户提供个性化服务。近年来&#xff0c;大模型&#xff08;Large Language Models, LLMs&…

Electron + vue3 打包之后不能跳转路由

路由不跳转问题原因&#xff1a; 是因为electron需要将vue-router的mode调整为hash模式(两种写法) export default new Router({mode: hash, //这里history修改为hashscrollBehavior: () > ({y: 0}),routes: constantRouterMap, }) export default new createRouter({his…

Linux网络_网络协议_网络传输_网络字节序

一.协议 1.概念 协议&#xff08;Protocol&#xff09; 是一组规则和约定&#xff0c;用于定义计算机网络中不同设备之间如何进行通信和数据交换。协议规定了数据的格式、传输方式、传输顺序等详细规则&#xff0c;确保不同设备和系统能够有效地互联互通。 在网络通信中&#…