JAVA EE,一文彻底聊明白

news2024/11/19 19:33:27

关于JAVA EE的论述,JAVA EE和Spring的论述在第二、三章节。

目录

1.JAVA的发展史

2.JAVA EE

3.JAVA EE和Spring


1.JAVA的发展史

JAVA语言于1995年面世,主要开发者为——James Gosline,后被称为JAVA语言之父。最早该语言叫Oak,在注册商标时,发现Oak已经被人使用,由于开发小组的成员当时在喝一款叫做JAVA的咖啡,于是将该语言命名为Java。至今JAVA的图标还是一杯咖啡。

JAVA分为两部分:

  • JRE
  • JDK

JRE:

Java Runtime Environment (Java运行环境),里面包括JVM——Java Virtual Machine (Java虚拟机)和一些基本的类库。

JDK:

Java Development Kit( Java 开发工具包),里面包括JRE,并额外增加了Java开发所必须的工具和类、库。一般说的JAVA版本就是指JDK的版本。

随着开发领域的细分,JAVA为了适应这种趋势,在1999年将JDK拆为3个版本:

  • J2SE
  • J2ME
  • J2EE

J2SE:

JAVA标准版,也称为JAVA SE。包含JAVA最通用的类库。

J2ME:

JAVA移动版,针对移动手机、机顶盒、外设,此类与硬件开发相关的场景。

J2EE:

面向企业版,现在已经改名为Java EE。

2.JAVA EE

99年sun公司为了避免开发的混乱,希望能在企业级应用上定一个规范,大家使用JAVA开发企业级应用时都遵循这种规范,使得系统具有清晰的层级便于维护和扩展,这个规范就是:

企业级应用是容器+组件的方式来提供服务的。

企业级开发其实要涵盖的东西很多,比如要涵盖网络通信、安全、多线程并发等等,这些问题要是都在企业级开发中每次都由开发人员去处理是很麻烦的,于是sun公司希望这些基础的共性的东西由容器去管理,而个性化的东西,如业务由组件去管理,由容器+组件的方式来提供服务。为了上面这个思想下诞生的东西能形成一个生态,于是sun公司定义了一系列规范,规定了容器该怎么做?做什么?组件该做什么?怎么做?容器和组件怎么合在一起?这一系列的规范就是JAVA EE规范。

整个JAVA EE其实分成两大块,容器和组件,各个开发商去根据规范开发容器,如tomcat、jetty等。开发者去开发组件,运行在容器中。由于容器满足了统一的规范、组件满足了统一的规范、容器和组件如何合在一起跑也满足了统一的规范,这样组件就可以跑在不同的容器中:

JAVA EE发展至今规范已经有四十多种,其一开始推出的规范有13个:

JDBC、EJB、JAVA RMI、JNDI、JMAPI、JMS、JTS、JMF、Annotation、JavaBeans、javaFX、JMX、JPA

这13个规范被称为JAVA EE十三大规范,有时也被简称为JAVA十三大规范,但JAVA十三大规范这种说法并不准确,这十三大规范只是针对J2EE场景的。

3.JAVA EE和Spring

一开始的时候按照标准的全套JAVA EE标准实现的架构如下:

后端服务器有两个,Web Container负责产生HTML页面、EJB Container负责业务逻辑,两个服务器之间通过RMI来相互调用。

 

2002年10月份,rod johson出了一本书《export one to one J2EE Development without EJB》,其中提出了一个疑问EJB Container中能做的事情,Web Container里完全可以做,那为什么一定要EJB Container?于是他自己写了一个框架并且利用此框架完整的开发出了一个系统,他自己这个框架里第一次提出了IOC和AOP。

rod johson此次尝试相当于是只采用了Web Container+ 自己的IOC和AOP,也就是说他只采用了一部分JAVA EE规范,舍弃掉了他觉得不合适的。

这本书影响很大,大家突然反应过来,其实完全按照JAVA EE规范来开发其实是很繁琐的,完全可以只采用一部分JAVA EE规范也可以做出一个系统。

后来根据rod johson书里的框架他和另外两个合作者一起做出了Spring。

Spring的出现颠覆了JAVA开发的体系架构,尤其是IOC,堪称大杀器,将后端业务逻辑从重量级的EJB中解放出来,经过无数实践大家基本上已经确定采用部分JAVA EE+Spring是JAVA企业级开发的最佳解决方案。按道理JAVA官方应该摒弃掉JAVA EE中已经被大家抛弃的部分,吸纳Spring重构整个JAVA EE的架构,但是很有意思的一幕出现了,JAVA官方很要面子,死不悔改,坚持在自己的规范里首推EJB承载后端业务逻辑的开发,直至如今也是这样。

但是spring的IOC这个设计实在是太优秀了不服又不行,怎么办?抄!于是JAVA抄Spring也推出了自己的IOC,但是又不能明面上叫IOC,于是改名为DI,这也就是为什么现在谈到IOC这个概念的时候经常会出现IOC/DI(控制反转/依赖注入)这种叫法,其实本质上就是一种东西,只是spring和JAVA EE的实现不同而已。目前spring和JAVA EE呈现出一种相互促进的趋势,彼此都在借鉴(互抄)对方优秀的特性。

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

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

相关文章

写给Java应用开发看的Elasticsearch调优手册

随着数据量的增长,MySQL在很多场景下,似乎已经无能为力了,所以有不少应用的数据从MySQL迁移到了Elasticsearch,我们的应用就在其中。由于开发时间紧张,所以仅仅只是了解了下Elasticsearch的基本知识,随便写…

[HDF5]如何使用CMake一起编译自己的代码和HDF5库

以一个实际项目来举例 目录 一.目录结构 二.CMakeLists.txt内容 三.执行CMakeLists命令 一.目录结构 1.build放CMake执行后生成的所有的内容,包括最后的工程或可执行文件等; 2.include放工程的头文件,以及HDF5的头文件,可以直接把HDF5中…

顶象业务安全情报——企业一眼“看透”黑灰产

不可否认,随着互联网的发展,黑灰产们也变得越来越“聪明”。它们不仅熟悉业务流程以及防护逻辑,并且能够熟练运用自动化、智能化的新兴技术实施攻击或诈骗行为,且极难识别。对购物、金融、社交、出行、教育、游戏等行业造成极大业…

3 个月前被裁员了,心情跌落谷底,直到我看到了这本神书…

3个月前的某一天,正在愉快的打工,突然被喊去谈话,然后就被辞退了。。 加入了找工作的大军 然而,因为疫情,因为大专学历的我,找工作比以往都艰难了许多 很多,纯粹就是因为学历,都不…

你想知道刷题的秘密吗?一篇博客让你明白什么是OJ题,如何刷OJ题,并深入浅出的带你刷遍顺序表的OJ题(小白必看)

目录 0.前言 1.什么是OJ 1.1 OJ简述 1.2 OJ的分类(尤其接口型OJ,带你剖析得明明白白) 1.3 接口型OJ的输入型参数 2. 剑指 Offer 56 - I. 数组中数字出现的次数 3. 88. 合并两个有序数组 4. 27.移除元素 5. 26. 删除有序数组中的重复…

Linux系统配置JDK环境变量

1、下载 1.1、Oracle官方下载地址:https://www.oracle.com/cn/java/technologies/downloads/#java8 1.2、同意协议,并点击Download 1.3、账号密码登录,没有可以创建一个 1.4、登录成功后就直接下载了 2、配置 2.1、下载好的压缩包上传到Lin…

FreeRTOS第一个任务的创建和调度详解(SVC异常)

在上一篇文章中,我详细分析了FreeRTOS中上下文切换:基于Cortex-M的RTOS上下文切换详解及FreeRTOS实例 但是第一个任务没有上下文,它是怎么运行的呢? 1 创建任务 如果我们没有创建任务的话,系统也有一个空闲任务用来…

【 java 集合】使用迭代器 Iterator 遍历集合

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

空气源热泵设备远程监控的优点

空气源热泵热水器是一种节能、环保、安全的新能源产品,也是家庭采暖、生活热水及空调制冷等方面的最佳选择。 在使用时,只需一次少量的电能就能实现连续制热和制冷,其制热效率是燃气热水器、电热水瓶和燃油热车等供热设备的数倍,因…

亿联会议系统操作使用全教程

环境: 终端VC800 亿联会议pc.v4.2.11 教程: 一、下载安装亿联会议PC/手机APP 官网下载 1.以下教程为Windows版演示 2.安装亿联会议软件(具体操作按软件提示步骤进行) 3.注册账号 3.1点击免费注册按钮,自动跳转至…

SCI投稿经验分享:成功发表一篇中科院2区智能物联网类SCI真的不难

我是如何用三个月成功发表一篇TOP 【本期推荐】本期小编分享点不一样的内容。关注小编三个月以上的铁粉可能会留意到七月份本协会新增了一本计算机智能物联网类1区TOP刊,该刊一经推出就受到了广大作者的纷纷投稿。奈何期刊合作期刊编辑严格控制版面,所以…

配电网络扩展规划:考虑使用概率性能源生产和消费概况的决策(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🎉作者研究:🏅🏅🏅主要研究方向是电力系统和智能算法、机器学…

Java开发学习(三十一)----Maven属性与版本管理

一、属性 1.1 问题分析 如下图所示 你会发现,如果现在想更新Spring的版本,你会发现依然需要更新多个jar包的版本,这样的话还是有可能出现漏改导致程序出问题,而且改起来也是比较麻烦。 问题清楚后,我们需要解决的话…

SpringBoot 打 jar包和打war 包配置

文章目录1. 前言2. SpringBoot 打 jar 包3. SpringBoot 打 war 包4.小结1. 前言 目前我们熟知的SpringBoot 打包方式,一共分为两种,一种是打jar 包(内置tomcat 方式,yml 里的配置参数生效包括端口,和servlet 的contex…

EndNote参考文献导入

简介 本文介绍如何在Word作文过程中借助EndNote管理参考文献,关于如何将参考文献导入到EndNote中这里不做说明,假定需要的文献均已经导入。 具体步骤 为什么需要文献管理工具来生成参考文献呢?最核心的原因就是自动控制的,文献的…

JAVA SCRIPT设计模式--结构型--设计模式之ADAPTER适配器(6)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能,所以不可能像C,JAVA等面向对象语言一样严谨,大部分程序都附上了JAVA SCRIPT代码,代码只是实现了设计模式的主体功能,不代…

代码详细教程+文档+PPT+源码等]SSM框架网上书城全套含微信支付|电商购物计算机专业毕业论文java毕业设计网站

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设SSM框架实现的网上书城-升级版_哔哩哔哩_bilibili项目资料网址: http://itzygogogo.com软件下载地址:http://itzygogogo.co…

Spring的IOC是啥?有什么好处?

单一职责原则 依赖倒转原则 最小知识原则 接口隔离原则 合成/聚合复用原则 里氏代换原则,任何基类可以出现的地方,子类一定可以出现 依赖倒置 假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根…

封装基板出厂100欧姆,测试85欧姆?

作者:一博科技高速先生成员 陈亮 封装基板(Package Substrate)是半导体芯片的载体。为芯片提供连接、保护、支撑、散热、组装等功效,以实现多引脚化,缩小产品体积、改善电性能及散热性、多芯片模块化等。我们生活中看…

构造HTTP请求 以及 关于HTTPS的加密

1.构造HTTP请求 构造HTTP请求有很多种方式.使用html,使用jQuery,使用socket…等等. 这里我们介绍两种. 使用html使用jQuery 1.1.使用html构造HTTP请求 使用html构造HTTP请求,要使用到 form 标签. 这里form标签中的属性有两个. action :填写数据要返送到的地址.(URL)meth…