javaEE和javaweb的区别
JavaEE
JavaEE 概念
Java EE,Java 平台企业版(Java Platform Enterprise Edition),之前称为Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名为 Jakarta EE(这个名称应该还没有得到群众认可)。是 Sun 公司为企业级应用推出的标准平台,用来开发B/S架构软件。JavaEE指的是一套规范,也可以认为是遵循JavaEE规范、使用JavaSE实现的技术和框架。
JavaEE 是 Java 应用最广泛的部分。
例如:
JavaSE包含socket的内容,JavaEE则是提出JSR902、JSR903规范,按照规范中的要求把socket封装成Servlet供直接使用;
JavaSE包含annotation和自定义注解API(Pluggable Annotation Processing API)的内容,JavaEE则是提出JSR269规范,所有框架中定义的注解都必须符合该规范,典型的例如lombok中的@Getter/@Setter注解就是符合JSR269规范的,当然你也可以依据JSR269的要求,自己实现一个@Getter/@Setter注解;
这就是JavaEE和JavaSE的区别,目前官网上最新的是JavaEE7的内容:
JavaEE7
网上一般会讲JavaEE的13个规范,实际上JavaEE 7 规范不止13个,加粗的是实现了这些规范的框架:
Web层
提供Web交互,数据传输等方面的组件
- 关注于为客户端生成各种格式内容的视图模块:JSP JSTL EL JSF
- 关注于Web实时交互的模块:WebSocket Java API——SpringBoot框架
- 关注于提供Web服务的Java Web Service模块:JAX-WS JAX-RS——SpringBoot框架
- 关注于交互数据规范的模块:JSON-P JAXB
- 关注于Web请求和响应的模块:Servlet——SpringBoot框架
企业信息层(EIS)
提供与其他企业中间件或服务交互的组件
- 关注于与数据库交互的模块:JDBC——Hibernate框架、SpringData Jpa框架
- 关注于Java持久化的模块:JPA——Hibernate框架、SpringData Jpa框架
- 关注于Java信息服务的模块:JMS——ActiveMq消息中间件
- 关注于Mail服务的模块:JavaMail API
- 关注于与遗留系统交互的模块:JCA
- 关注于执行批量任务的模块:Batch——Spring Batch3.0批处理框架
通用(Common)
提供公用组件
- 关注于上下文与依赖注入的模块:CDI——Spring框架
- 关注于整合安全的模块:JACC JASP JAAS
- 关注于JavaEE平台规范注解的模块:JavaEE通用注解(JavaEE common Annotation)
- 关注于数据校验的模块:Bean验证API(Bean Validation)——Hibernate Validator验证框架
- 关注于JavaEE管理的模块:JavaEE管理API(JavaEE Management API)
- 关注于提供查找组件,资源或服务的间接层模块:JNDI
业务层(Core)
提供简化业务逻辑编写的组件
- 关注于用于开发可移植,可重用,可伸缩的企业应用编程模型:EJB
- 关注于用于开发简化的,轻量级的,容器管理的,基于POJO的编程模型:托管Beans(Managed Beans)
- 关注于提供面向切面编程的模块:拦截器API(Interceptor)
- 关注于提供事务管理的模块:JTA
- 关注于优化并发编程的模块:JavaEE并发工具包(Concurrency Utilities for Java EE)
关于JavaSE规范和JavaEE规范,参考:
JavaSE规范,Java规范,JSR规范全面整理
只要知道了JavaEE包含哪些规范,就能知道自己大概要掌握哪些技术了。
PS:用Bean Validation框架校验真的很省事啦~
JavaSE
$java_home/jre/lib/rt.jar里的全部内容,比如java目录下的lang包、util包、io/nio包等14个包的内容,一般是一些基础类库,例如包装类、collection、concurrent并发包、函数式接口、反射、注解等,简单粗暴的讲,JavaSE就是jdk包含的内容;
JavaEE 与 JavaSE 的区别与联系
JavaEE 是在 JavaSE 的基础上构建的,是对 JavaSE 的扩展,增加了一些更加便捷的应用框架。除了 EE 和 SE,还有为移动端而生的 JavaME,但目前应用不算广泛。三者的关系可以用下图概括:
JavaEE和JavaWeb的区别
JavaEE的技术包括两个部分,开发B/S架构(网站)和C/S架构(客户端)的内容,也就相当于QQ网页版和QQ桌面客户端的区别,B/S架构的那一套也就是我们所说的JavaWeb,C/S架构也就是桌面应用(客户端),所以说JavaEE包含了JavaWEB,这也就是JavaEE和JavaWeb的区别。
同样的,对于JavaWeb服务器和JavaEE服务器的区别,tomcat是JavaWeb服务器,tomEE是JavaEE服务器,tomEE包含tomcat。
使用Java开发的桌面客户端比较少,最有名的要属Eclipse了,Eclipse就是用java开发的桌面应用。至于为什么java很少用来开发桌面应用,这又是一个具有争议话题了。
JavaEE与Java 的关系
Java刚开始的时候,因为各种应用和生态不成熟,很多东西需要有人牵头制定强制规范引导Java的发展,于是Java EE曾经引领了企业级应用的开发。
但随着时代的进步,以及越来越多的公司和组织参与到Java世界,出现了各种各样的Java EE组件的代替者,比如Hibernate、Spring就是其中两个典型。相反,Java官方制定的各种Java EE规范反而不太受欢迎,他们制定了JSF规范,但实际企业开发喜欢用Struts 2、Spring MVC;他们制定了EJB规范,但实际企业开发往往还是喜欢用Spring;他们制定了JPA规范,但实际企业开发往往还是喜欢直接用Hibernate、MyBatis。
现代企业级应用常用的各种框架和工具,比如Struts 2、Spring、Hibernate、jBPM、Activiti、Lucene、Hadoop、Drools、CXF等这些大家耳熟能详的组件,全部都不是来自Oracle官方,但是却在企业应用中开发经常用到的。
现在企业里面,真正常用的JavaEE规范有什么?Servlet、JSP、JMS、JNDI。这些技术都只是充当了一个程序的入口而已。
Oracle之所以可能考虑放弃Java EE,正体现了Oracle对丧失Java控制权的无奈。企业的本质是逐利,Oracle每年为制定Java EE规范投入不少人力、财力,但制定的规范最终并没有获得市场的青睐,所以Oracle可能放弃这种吃亏不讨好的事情。
但Java不同,2016年6月,Java在商业语言排行榜上的市场份额将近21%,庞大到恐怖的市场份额,背后隐藏着巨大各种专利使用费和盈利商机,任何一个理智的公司都不会放弃这个会下金蛋的母鸡。
由此可见,oracle上提供的java EE是官方指定的javaEE规范,里面都是符合官方指定的javaEE组件,我们用SSM,SSH开发后台时使用到的只有Servlet、JSP、JMS等少量的java EE规范,没有必要使用orcale提供的java EE版本,直接使用jdk就可以(当然还需要maven等管理第三方的jar包来实现功能)
javaEE和javaweb的区别相关推荐
- java和javaweb的区别_javaee, javaweb和javase的区别以及各自的知识体系
javaee, javaweb和javase的区别以及各自的知识体系 来源 https://blog.csdn.net/weixin_39297312/article/details/79454642 ...
- J2EE与javaweb的区别
1.Java分类 Java分为JavaSE(Java标准版).J2EE(Java企业版)和JavaME(Java微型版): JavaSE(Java Standard Edition),一般用来开发桌面 ...
- java和javaweb的区别_java和javaweb有什么关系吗?它们之间的区别是什么?
可能很多入门学习java已经有一段时间的朋友还是没有很清楚,java和javaweb之间的一些联系是什么?或者说,这两者之间有一些什么样的区别呢?下面我们一起来看看吧. 首先我们需要弄清楚java跟W ...
- javase和javaee的区别(javase和javaee和javame的区别)
JavaEE的EJB3.0和EJB2.0的区别有哪些呢? JavaEE折叠EJB3.0和EJB2.0的区别从架构图可以看出,无论Web结构或EJB结构,提供实现的功能相差不多,这样,我们的业务核心组件 ...
- JDK、JRE、JVM的区别及JavaSE、JavaEE和JavaME的区别?
1.JRE(Java Runtime Environment java运行环境) 包括JAVA虚拟机和JAVA程序所需的核心类库,如果想要运行一个开发好的JAVA程序,计算机中只要安装JRE即可 2. ...
- JavaEE 和 JavaSE的区别
Java分为三个版本:Java SE(标准版).Java EE(企业版).Java ME(微型版).其中JavaSE就是大家学JavaEE和JavaME的基础,换而言之学Java先从JavaSE开始, ...
- JavaSE、JavaEE、JavaWeb分不清?
Java分为三大版本,SE即标准版,包含了Java核心类库,主要用来开发桌面应用:EE即企业版,包含SE,又有扩展部分(Servlet,JDBC等),主要用来开发分布式网络程序:ME即微型版,包含了S ...
- Java学习路线,Java SE,EE,ME的区别,SSM框架基本概念
1.尚硅谷 视频课程:https://www.bilibili.com/read/cv5216534 初学者可按照尚硅谷公开的JAVA视频最快学习路线: JavaSE --> MySQL–> ...
- JavaEE是什么?JavaSE又是什么?两者的区别有哪些?
Java作为最流行的编程语言受到了许多人的喜爱,其在编程中的地位自不必多说.对于许多才刚刚入门Java的朋友来讲,常常会产生这样的困惑,JavaEE是什么?JavaSE又是什么?两者的区别有哪些?学哪 ...
最新文章
- python中变量的作用域有几种_Python中变量的作用域(variable scope)
- 解决hibernate对Sql Server分页慢的问题
- 分布式思想和rpc解决方案介绍
- Date和TimeZone的关系
- Bootstrap 默认栅格系统
- seaborn单变量/双变量/多变量绘图
- Kudu :Service unavailable: Soft memory limit exceeded at xxx% of capacity
- String类的equals()与==的区别
- HCIE Secuirty 防火墙内容安全组合 备考笔记(幕布)
- 经典排序算法(四)--基数排序Radix Sort
- 简易水下航行器舵控arduino,蓝牙通讯
- [Bucket CTF 2023]
- Oracle EBS R12 创建会计科目失败诊断和处理
- Linux 之pureftp 的部署和优化
- php狼人杀,《狼人杀专业术语》 一秒变成狼圈人!
- ipadpro怎么分屏_2020款iPad Pro开箱测评:下一个十年,打开AR新世界的大门
- java特种兵 怎么样_java特种兵
- Mecanim动画——MatchTarget绑定
- 学习C语言的第一步安装
- ireport开发报表实现金额大写
热门文章
- 八位“Booth二位乘算法”乘法器
- 红海or蓝海?数据分析告诉你:在线教育的井喷与未来
- 网络游戏运营的整体流程
- 前端框架综述(8)前端
- 《Patterns, Principles, and Pract》— chapter15 Value Objects
- ElementUI图片上传 回显
- AI规则迎来进化:从“阿西莫夫三原则”到“李彦宏四原则”
- python 字典循环赋值,Python字典循环添加一键多值的用法实例
- OpenCV+Mediapipe手势动作捕捉与Unity引擎的结合
- 我的人工智能梦(一、前言)