【方向盘】Java EE几十种技术,“活着的”还剩几何(服务/安全/Java SE篇)

简介: 往事蹉跎,所剩几何
本文已被 https://yourbatman.cn收录; 女娲Knife-Initializr工程可公开访问啦;程序员专用网盘 https://wangpan.yourbatman.cn;技术专栏源代码大本营: https://github.com/yourbatman/tech-column-learning;公号后台回复“ 专栏列表”获取全部小而美的 原创技术专栏

你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。

Title Link
所属专栏 【方向盘】-Java EE
源代码 https://github.com/yourbatman/FXP-java-ee
程序员专用网盘公益上线啦,注册送1G超小容量,帮你实践做减法 https://wangpan.yourbatman.cn
Java开发软件包(Mac) https://wangpan.yourbatman.cn/s/rEH0 提取码:javakit
女娲工程 http://152.136.106.14:8761
版本约定 [Mac OS 12.5],[IntelliJ IDEA 2022.2],[Java EE:6、7、8],[Jakarta EE:8、9、9.1]

📚前言

若你还不太清楚Java EE是什么,可先移步这里:什么是Java EE?

Java EE技术规范从个数上算,总共有40(8 + 13 + 5 + 6 + 8)个,我们已完成:

本文继续,将剩下的3个part“一网打尽”。为了便于理解,还是贴上这张分类图:
在这里插入图片描述

所属专栏

相关下载

版本约定

  • Java EE:6、7、8
  • Jakarta EE:8、9、9.1

✍正文

在这里插入图片描述

Part3: Web Services技术

Web Services Technologies,共5个规范。
在这里插入图片描述

✌1. JAX-RS

推荐学习指数 ⭐️⭐️⭐️

Java API for RESTful Web Services的核心概念是resource,即面向资源。是一个Java编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。借助标准注解来落地。

和JAX-WS的区别: 两者是 不同风格的SOA架构。前者以动词为中心,指定的是每次执行函数。而后者以名词为中心,每次执行的时候指的是资源。JAX-RS更新来自Java EE 6
API的GAV

<dependency>
    <groupId>jakarta.ws.rs</groupId>
    <artifactId>jakarta.ws.rs-api</artifactId>
    <version>2.1.6</version>
</dependency>

代表API

  • Client、Request、Response、UriBuilder
  • @GET、@POST、@PUT、@DELETE、@Produces、@QueryParam

Jersey就是一个很好的Web-Service框架,实现了jaxrs。这么技术在老外那边还有用武之地(比如Eureka就用它),国内使用得确实少之又少了。

✌2. JAX-RPC

推荐学习指数 ⭐️

JAX-RPC已经过期,毕竟JAX-WS 2.0可认为是JAX-RPC 1.1的后续版本。

注:JAX-WS技术在👇🏻,有需要可提前移步阅读

我们可以对比下JAX-RPC和JAX-RS:

  • 相同点

    • JAX-WS仍然支持 SOAP 1.1 over HTTP 1.1,因此互操作性将不会受到影响,仍然可以在网上传递相同的消息(SOAP最新版为1.2
    • JAX-WS仍然支持 WSDL 1.1,因此您所学到的有关该规范的知识仍然有用。WSDL 2.0 规范已经接近完成,但在 JAX-WS 2.0 相关工作结束时其工作仍在进行中
  • 不同点

    • JAX-RPC 和 JAX-WS 都支持 SOAP 1.1。JAX-WS 还支持 SOAP 1.2
    • JAX-WS支持不在SOAP下发送消息而基于http即可,而这是JAX-RPC做不到的
    • JAX-WS运用到了Java 5很多新特性,代码更好性能更高

API的GAV

<dependency>
    <groupId>jakarta.xml.rpc</groupId>
    <artifactId>jakarta.xml.rpc-api</artifactId>
    <version>1.1.4</version>
</dependency>

代表API

  • Service、ServiceFactory
  • MessageContext、ParameterMode

简而言之,JAX-RPC已全面被JAX-WS取代(即使后者的生命力也已经很弱)。

✌3. JAXR

推荐学习指数 ⭐️

JAXR(Java API for XML Registries)提供了与多种类型注册服务进行交互的API。

JAXR使java软件程序员使用单个的易于使用的抽象API访问多种XML registries,一个统一的JAXR实现模型描述在XML registries中的内容和元数据。JAXR给开发者写能使用于多种目标注册的registry客户程序的能力, 还给这些客户程序能跨多种底层registries添加值的能力.

API的GAV

<dependency>
    <groupId>jakarta.xml.registry</groupId>
    <artifactId>jakarta.xml.registry-api</artifactId>
    <version>1.0.10</version>
</dependency>

代表API

  • RegistryService
  • JAXRResponse
  • QueryManager

✌4. EWS

推荐学习指数 ⭐️

略。

✌5. WS-MJP

推荐学习指数 ⭐️

略。

为了降低阅读/学习负担,用一句话总结该Part:又重又老掉牙的技术了,脑子里留个印象就行(比如JAX-RS、SOAP协议、WSDL等),其它......fork笔者的工程源码里瞧瞧就成! https://github.com/yourbatman/FXP-java-ee

Part4: 管理和安全技术

Management and Security Technologies,共6个规范。
在这里插入图片描述

推荐学习指数 0

✌1. jacc

✌2. jaspic

✌3. jeead

✌4. dsol

✌5. m-j2ee

✌6. security

这一part离普通开发者就更远了,大多数人(包括笔者在内)可能就耳闻过jacc还稍微有丁点熟悉,其它的,呃......

说明:这part关于Java安全,不是不重要,而是对我等普通程序员不重要

Part5: JavaSE中与JavaEE相关的规范

Java EE-related Specs in Java SE,共8个规范。
在这里插入图片描述
此part比较特殊,表示规范属于Java EE规范,但API(或者实现)都在Java SE里就有,所以都无需额外导包,并且很多都比较熟悉。

✌1. JDBC

推荐学习指数 ⭐️⭐️⭐️⭐️⭐️

这是第三个五星推荐。非常重要,特别是做数据库中间件的研发,这些理论规范知识是基础。

Java Database Connectivity:数据库连接技术。用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。关键API回顾一下:

  • java.sql.Driver
  • java.sql.DriverManager
  • java.sql.Connection
  • java.sql.Statement / java.sql.PreparedStatement

当然还有javax.sql.DataSource、javax.sql.PooledConnection、javax.sql.XADataSource、javax.sql.XAConnection等等

API的GAV

无,在Java SE内

代表API:如上

该规范的实现由各大数据库厂商提供,如MySql、Oracle、PostgreSQL

✌2. JMX

推荐学习指数 ⭐️⭐️⭐️⭐️

Java Management Extensions:Java管理扩展。顾名思义,是管理Java的一种扩展。这种机制可以方便的管理正在运行中的Java程序。常用于管理线程,内存,日志Level,服务重启,系统环境等。
在这里插入图片描述
API的GAV

无,在Java SE内

代表API

  • JMX、JMXConnector、PersistentMBean、StandardMBean
  • MBeanServer、MBeanServerBuilder、MBeanServerFactory
  • @MXBean

Spring Boot的Endpoint常见的是通过Http暴露,同时也可以(更安全的方式)通过JMX方式暴露。

✌3. JAX-WS

推荐学习指数 ⭐️

Java API for XML Web Services:一组XML web services的JAVA API,JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。

Web服务有两种类型:

  • SOAP Web Services
  • Restful Web Services

该框架可以通过注解形式导出一个Web Service服务。如:@WebService、@WebMethod、@SOAPBinding

API的GAV

// 说明:此Jar不导入也没关系,因为已经包含进Java SE内了
<dependency>
    <groupId>jakarta.xml.ws</groupId>
    <artifactId>jakarta.xml.ws-api</artifactId>
    <version>2.3.3</version>
</dependency>

代表API

  • WebServiceClient、Endpoint、HTTPBinding
  • SOAPHandler、SOAPMessageContext
  • @WebEndpoint、@WebServiceRef、@RequestWrapper

✌4. JAXP

推荐学习指数 ⭐️

Java API for XML Processing (JAXP):XML处理的Java API,是Java XML程序设计的应用程序接口之一,它提供解析和验证XML文档的能力。代表API:

  • DocumentBuilder
  • SAXParser

它不提供处理 XML 的新方式,不补充 SAX 或 DOM,也不向 Java 和 XML 处理提供新功能。它只是使通过 DOM 和 SAX 处理一些困难任务更容易,屏蔽厂商们的实现差异。

API的GAV

无,在Java SE内

代表API

  • DocumentBuilder、DocumentBuilderFactory
  • SAXParser、SAXParserFactory

✌5. JAXB

推荐学习指数 ⭐️

Java Architecture for XML Binding:实现xml到Java对象,Java对象到XML的转换。类比一下JSON-P和JSON-B,何其相似。
在这里插入图片描述
API的GAV

// 说明:此Jar不导入也没关系,因为已经包含进Java SE内了
<dependency>
    <groupId>jakarta.xml.ws</groupId>
    <artifactId>jakarta.xml.ws-api</artifactId>
    <version>2.3.3</version>
</dependency>

代表API

  • @XmlRootElement
  • @XmlSchema
  • @XmlElement
  • @XmlAttribute

✌6. StAX

推荐学习指数 ⭐️

Streaming API for XML (StAX) :和SAX类似也是用于解析xml文件的,StAX采用流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持。

API的GAV

无,在Java SE内

代表API

  • XMLOutputFactory:XMLOutputFactory.newInstance().createXMLStreamWriter(out);
  • XMLInputFactory:

✌7. SAAJ

推荐学习指数 ⭐️

SOAP with Attachments API for Java (SAAJ) Specification:利用SOAP协议实现的基于XML消息传递的API规范。它的相关API都在javax.xml.soap内,已经被集成进Java SE。

API的GAV:

无,在Java SE内

代表API:略

✌8. JAF

推荐学习指数 ⭐️

JavaBeans Activation Framework (JAF) :一个专用的数据处理框架。提供用于封装数据,并为应用程序提供访问和操作数据的接口。

它应用最广泛的地方是:处理MIME编码的邮件附件。将MIME字节流转换成Java对象,或者对象到字节流。现在知道为啥使用JavaMail时需额外导入activation.jar这个包了吧,现在告诉你:不需要了,因为已经包含在Java SE内。

API的GAV

// 说明:此Jar不导入也没关系,因为已经包含进Java SE内了
<dependency>
    <groupId>jakarta.activation</groupId>
    <artifactId>jakarta.activation-api</artifactId>
    <version>1.2.2</version>
</dependency>

代表API

  • javax.activation.DataContentHandler
  • javax.activation.MimeType
  • javax.activation.FileDataSource

✍总结

至此,对Java EE规范的40种技术全部介绍完了。有可能它是全网最全的一份讲解,希望可以很独特的帮助到你站在高一点视角,总览Java EE技术以及JSR规范,甚至包括和Spring技术栈的对比和联系。
在这里插入图片描述
Java EE的战略高度是非常高的,值得所有开发者、开源框架学习。但它“失败”的地方在于反应慢,不太能倾听到社区的声音做出相应决策,从而一步一步落后了。当然喽,落到如此地步和Oracle的“独裁”不无关系。好在现交给了Eclipse基金会打理,作为一枚Javaer,期待它的王者归来。

推荐阅读

在这里插入图片描述

我是方向盘(YourBatman):前25年不会写Hallo World、早已毕业的大龄程序员。高中时期《梦幻西游》骨灰玩家,网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖...是我不可抹灭的黑标签

  • 🎓2013.07 清考、毕业答辩3次未通过、延期毕业
  • 🏷2013.08-2014.07 宁夏中介公司卖二手房1年,毕业后第1份工作
  • ️️🏷2014.07-2015.05 荆州/武汉,泰康人寿卖保险3月、饿了么送外卖2月,还有炸鸡排、直销等第2345份工作
  • 🏷2015.08 开始从事Java开发,闯过外包,呆过大厂!擅长抽象思维,任基础架构团队负责人
  • 🏷2021.08 因“双减政策”失业!历经9面,终获美团外卖L8的offer
  • 🙅🏻‍♀️Java架构师、Spring开源贡献者、CSDN博客之星年度Top 10、领域建模专家、写作大赛1/2届评委
  • 📚高质量代码、规范践行者;DDD领域驱动深度实践;即将出版书籍《Spring奇淫巧技》

在这里插入图片描述

序号 专栏名称 简介
01 【方向盘】-程序人生 程序人生,人生程序
02 【方向盘】-资讯/新特性 IDEA、JDK、Spring技术栈......新特性
03 【方向盘】-IntelliJ IDEA 熟练使用IDEA就相当拥有物理外挂,助你高效编码
04 【方向盘】-Bean Validation 熟练掌握数据校验,减少90%的垃圾代码
05 【方向盘】-日期时间 帮你解决JDK Date、JSR 310日期/其实 的一切问题
06 【方向盘】-Spring类型转换 Spring类型转换-框架设计的基石
07 【方向盘】-Spring static static关键字在Spring里的应用
08 【方向盘】-Cors跨域 关于跨域请求问题,本专栏足矣
09 【方向盘】-Jackson Almost Maybe是最好的Jackson专栏
10 【方向盘】-Spring配置类 专讲@Configuration配置类,你懂的
11 【方向盘】-Spring技术栈 暂无所属小分类的,Spring技术栈大分类
12 【方向盘】-JDK 暂无所属小分类的,JDK技术栈大分类
13 【方向盘】-Servlet Servlet规范、Web相关内容专题
14 【方向盘】-Java EE 从Java EE到Jakarta EE,30年弹指一挥间
15 【方向盘】-工具/提效 开发工具、软件工具,目标是提效
16 【方向盘】-Spring技术栈新特性 Spring Framework、Spring Boot、Spring Cloud、Spring其它技术
17 【方向盘】-基本功 每个Javaer,都需要有扎实的基本功
... ... ...
99 源代码库 大多数专栏均配有源代码,都在这里
目录
相关文章
|
24天前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
47 11
|
1月前
|
XML Java 编译器
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
65 7
|
16天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
2天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
1月前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
14天前
|
存储 缓存 前端开发
JavaEE初阶——初识EE(Java诞生背景,CPU详解)
带你从零入门JAVAEE初阶,Java的发展历程认识什么是cpu,cpu的工作原理,cpu是如何进行计算的,cpu的架构,指令集,cpu的核心,如何提升cpu的算力,cpu的指令,,cup的缓存,cpu的流水线
|
2月前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
52 1
|
2月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
2月前
|
前端开发 Java 数据库连接
你不可不知道的JAVA EE 框架有哪些?
本文介绍了框架的基本概念及其在编程领域的应用,强调了软件框架作为通用、可复用的软件环境的重要性。文章分析了早期Java EE开发中使用JSP+Servlet技术的弊端,包括可维护性差和代码重用性低等问题,并阐述了使用框架的优势,如提高开发效率、增强代码规范性和可维护性及提升软件性能。最后,文中详细描述了几种主流的Java EE框架,包括Spring、Spring MVC、MyBatis、Hibernate和Struts 2,这些框架通过提供强大的功能和支持,显著提升了Java EE应用的开发效率和稳定性。
143 1
|
2月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
57 0
下一篇
开通oss服务