【JavaEE进阶】导读

本节⽬标

  1. 了解什么是JavaEE
  2. 在JavaEE中, 我们学习什么, 如何学, 难点是什么

一、Java EE 发展历程

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

JavaSE:Java标准版 JDK
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

但是现在这个名字还未被⼤众普及, 为了更⽅便⼤家理解, 咱们课程中还是使⽤JavaEE. 以上历史⼤家作为了解即可.

二、Java EE 课程学习内容

前⾯学习的是Java基础, JavaEE 主要学习Java的应⽤, 也就是学习Java在企业中是如何应⽤的
Java更多场景是业务开发, 更狭义点可以理解为web开发. 所以咱们的学习也是围绕着如何使⽤Java来做web开发

1.什么是Web开发?

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

2.Web⽹站的⼯作流程

⽬前⽤⼾对PC端应⽤的开发结构模式主要分为C/S和B/S结构.

  • CS即Client/Server(客⼾机/服务器)结构. 常⻅的C/S架构的应⽤⽐如QQ,CCTALK,各种⽹络游戏等等,⼀般需要安装并且与服务器进⾏⽹络通信的都属于此类。
  • BS即Browser/Server(浏览器/服务器)结构. B/S架构全称是浏览器 / 服务器(Browser/Server)结构,分为Web浏览器、服务器程序、数据库服务三部分,可以理解为是对C/S架构⼀种改进, 由于所有的业务逻辑都由服务器程序处理, 所以客⼾端仅使⽤浏览器就可以完成所有操作,⼤⼤降低了客⼾端的维护

客户机(APP) 和 浏览器 都是 客户端

|-----|-----------------------------------------------------------------------|---------------------------------------------------|
| 架构 | 优点 | 缺点 |
| C/S | •⼤部分业务都可以在客⼾端完成,充分利⽤本地的计算机资源 •响应速度快 •个性化定制能⼒强 •⾯向相对固定的⽤⼾群,对信息安全的控制能⼒强 | •需要安装客⼾端才能使⽤ •维护成本⾼,任何⼀台电脑上的客⼾端出现问题都需要进⾏维护,升级过程繁琐 |
| B/S | •客⼾端零维护,只需要安装⼀个浏览器即可 •所有业务都集中在服务器端,业务扩展⾮常⽅便 •维护成本低,只需要维护服务器即可 | •服务器安全与业务处理能⼒需要花费很⼤精⼒与成本 •不同浏览器⽀持不尽⼈意 |

咱们这儿的JavaEE项⽬都是基于 B/S架构的.

  1. 通过浏览器访问前端程序. 前端程序返回前端代码.
  2. 前端程序调⽤后端程序, 进⾏数据的获取(也可能由浏览器进⾏访问)
  3. 后端返回数据后 , 前端根据后端返回的数据进⾏⻚⾯渲染, 显⽰⻚⾯

3. 学习内容

  1. 前端Web开发[了解]
  • HTML
  • CSS
  • JavaScript
  • JQuery

本部分⽬标是能够借助⽹络看懂前端代码即可. 不做深⼊
2. 后端Web开发[重点]

  • Maven
  • Spring家族框架: Spring, SpringBoot,Spring MVC
  • Mybatis
  • Linux

本部分为JavaEE课程的重. 会从0到1完成项⽬的开发到部署.

三、Java EE 怎么学

在JavaEE中, 我们主要是对各种框架的学习, 以及如何把这些框架应⽤在企业中, 来实现⼀些web开发.
那什么是框架呢? 学习哪些框架呢

1 什么是框架

随着技术的发展, ⽆论是后端开发还是前端开发, 开发的时候都很少使⽤原⽣的代码,⽐如:JDBC、JS 等. 取⽽代之的是各种开发框架. 如:后端框架:Spring, SpringBoot, Mybatis等,前端常⽤的框架: Vue、Node等. 这些框架都有⼀个共同的特点, 就是简单, ⾼效. 这极⼤的提⾼了我们的开发效率. 那什么是框架呢?
框架(Framework) , 意思是框架、机制、准则. 最早是源于建筑⾏业,是⼀个框⼦⸺指其约束性,也是⼀个架⼦⸺指其⽀撑性. 是⼀个基本概念上的结构,⽤于去解决或者处理复杂的问题。在计算机领域, 可以看做是为应⽤开发者定制的应⽤⻣架.

通俗的来讲: 框架是实现某种功能的半成品, 他提供了⼀些常⽤的⼯具类, 我们在框架的基础上, 可以更加⾼效的进⾏开发.
也就是⼀些程序员把之前你需要写的, ⼀些复杂的功能写好了, 并且封装了起来, 放在那⾥, 你只需要调⽤他提供的接⼝就可以实现⼀些之前你需要花费很⼤功⼒才能实现的功能.

⽐如盖房⼦: 之前你需要⼀砖⼀⽡⾃⼰盖, 有了框架之后, 就有了⼀个现成的架⼦, 你只需要往现成的 架⼦上添东西就可以了.
框架可以理解为⼀个⽑坯房. 有了这个⽑坯房之后, 你就可以⾃⼰装修成你想要的样⼦.
没有这个⽑坯房的话, 你就需要⾃⼰盖房⼦主体结构等.
⽐如制作⾐服, 之前制作⾐服需要⾃⼰测量, 计算, 画图, 现在可以直接买现成的图纸, 按照图纸来剪裁 就可以了.

2 学习哪些框架

Java EE 共涉及5个框架的学习: Spring, Spring Boot, Spring MVC,Mybatis,Mybatis-Plus
其中Spring, SpringBoot, Spring MVC 可以看做是⼀家⼈, 属于Spring 家族的产品.
Mybatis 是⼀个持久层框架, 主要是⽤来帮助我们更好的操作数据库.

3. 难点

  1. 建⽴web开发的思维模式. 写代码不仅仅是为了实现某个功能, 更是学习解决问题的思维⽅式
  2. 先使⽤, 再理解, 会导致刚开始⽐较懵, 不知其所以然. 切忌不可深陷其中.
  3. 涉及简单的软件⼯程的设计思想(前后端分离思想, 后端⼯程的分层思想)
  4. 理解前后端交互的过程
  5. 遇到的问题更加多样, 除了代码带来的问题, 还有环境带来的问题(各种缓存, 导致现象看起来莫名其妙).
  6. 需要⼤量的反复练习, 来加深对这个知识点的理解.
  7. 知识点上下⽂会经常有关联,需要仔细听才能搞懂各个知识点的逻辑关系.

4 特点

  1. 练习是学习JavaEE的关键,⼀定要多练.
  2. 和以往知识学习的不同, 框架的学习更建议先使⽤再理解.
  3. 关于框架实现思想和原理, 由于学习⽅式的变化, 先使⽤再理解, 会导致刚开始学会⽐较懵, 这个没关系,先保证会⽤,会⽤之后再回过头来看实现思想和原理就会豁然开朗.
  4. ⽆需过度纠结概念, 以避免钻⽜⻆尖, 同⼀个词汇, 在不同的上下⽂中, 表⽰的概念不同, 要结合上下⽂去理解, 更多以实践为主.

5 我们能收获什么

  1. 项⽬开发能⼒
    a. 掌握主流的前后端分离开发模式, 使⽤主流的SSM框架实现简单项⽬或者模块的开发
    b. 掌握SSM从搭建到发布的全部流程
    c. 掌握常⻅的web开发解决⽅案, ⽐如登录认证等
    d. 掌握数据库表的设计, 操作能⼒
  2. ⾃我解决问题的能⼒
    a. 学习查看⽇志, 分析⽇志, 具备⾃我解决问题和调试SSM项⽬的能⼒
  3. 了解⼀些企业开发标准
    a. 作为⼀名准职业⼈, 我们不仅需要掌握如何实现这个功能, 也需要了解企业开发规范.
相关推荐
卓越小Y5 分钟前
配置jellyfin docker 硬件加速
java·spring cloud·docker
白萝卜弟弟8 分钟前
【JAVA】正则表达式中的捕获组和非捕获组
java·正则表达式
袁庭新28 分钟前
LuaRocks如何安装数据库驱动?
java·数据库·redis·lua·luarocks·袁庭新
hummhumm37 分钟前
第 10 章 - Go语言字符串操作
java·后端·python·sql·算法·golang·database
nukix1 小时前
Mac Java 使用 tesseract 进行 ORC 识别
java·开发语言·macos·orc
月光光心慌慌。1 小时前
新日撸java三百行` 新手小白java学习记录 `Day1
java
蘑菇丁1 小时前
ranger-kms安装
java·ide·eclipse
XiaoLeisj1 小时前
【JavaEE初阶 — 多线程】内存可见性问题 & volatile
java·开发语言·java-ee
Kika写代码1 小时前
【基于轻量型架构的WEB开发】课程 13.2.4 拦截器 Java EE企业级应用开发教程 Spring+SpringMVC+MyBatis
spring·架构·java-ee
weixin_462428471 小时前
使用 Caffeine 缓存并在业务方法上通过注解实现每3到5秒更新缓存
java·缓存