JSR, Java Specification Request, Java规范请求; 也有的地方翻译为Java规范提案。

在前面的文章 1. Java EE简介 - JavaEE基础系列中, 简要介绍了Java EE的定义. 我们提到, Java EE 由各种组件构成, 这些组件需要实现 Java Specification Request(JSR) 所规定的各种 API。

本文将深入了解JSR到底是什么.

核心概念: 每个JSR都是正式的、开放的标准文档, 由个人或组织提交给 Java Community Process 进行审议, 其中包括对Java技术平台的修改(changes),补充(additions)和改进(improvements)。

上述定义中的重点是:

  1. 每个JSR都是正式的文档, JSR请求必须符合JCP规定的格式。

  2. JSR是开放的标准文档. JSR文档的分发和贡献符合某些法律条款. 任何人都可以很容易地获取这份文档。

  3. 可以由个人或组织发起JSR请求。原则上, JCP 组织的会员都可以发起JSR. JCP会员对公众开放, 个人会员是免费的。 假如你不是JCP组织的会员, 也就不能发起JSR请求。

    可以在官网注册JCP会员,当前是Oracle公司在维护。 注册向导: https://jcp.org/en/participation/membership

  4. JSR文档是对Java技术平台提出的修改,补充和改进. 每个JSR的目的都是对Java技术栈增加新功能、修正BUG或者进行某些方面的提升。

Java EE中的每个API, 实际上都是由某个JSR规范所定义的, 并且通过了JCP组织的审核. 所有JSR都有JCP审核的过程。

一旦某个JSR通过了JCP的审核, 它就变成了Java技术栈的一部分, 可以安全地用于生产环境. JSR的审核过程确保了只有可靠稳定的技术才能变成Java的一部分, 避免过度臃肿和膨胀。

JSR进程也保证了 API 是经过仔细设计的, 同时能保持向后兼容。向后兼容性就是说, 老版本中的Java平台存在某个功能/API, JSR进程就确保在新版本中可以继续使用【这不包括第三方API和私有API】。

每个JSR都只是一个抽象的规范, 需要一种具体的实现。这就是参考实现的概念。请关注 Java EE 系列的下一篇文章。

原文链接: https://pedanticdevs.com/2017/06/java-ee-fundamentals-java-specification-request-what-is-a-jsr.html

原文日期: 2017年06月23日

翻译日期: 2017年07月01日

翻译人员: 铁锚: http://blog.csdn.net/renfufei

2.JSR简介 - JavaEE基础系列的更多相关文章

  1. 1. Java EE简介 - JavaEE基础系列

    什么是Java EE? 真的是你理解的那样吗? Java EE, 原名J2EE, 其核心由一系列抽象的标准规范所组成, 是针对目前软件开发中所普遍面临问题的解决方案. 注意以上定义中的"抽象 ...

  2. 3. 什么是JSR参考实现? - JavaEE基础系列

    本文是JavaEE基础系列的第三节. Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 上一节中, 我们介绍了什么是JSR.JSR就是一个提交到JCP的抽象请求,包含 ...

  3. 4. 什么是应用服务器? - JavaEE基础系列

    本文是JavaEE基础系列的第四节. Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 什么是JSR参考实现? - JavaEE基础系列 上一节介绍了什么是JSR参考 ...

  4. OpenStack实践系列①openstack简介及基础环境部署

    OpenStack实践系列①openstack简介及基础环境部署 一.OpenStack初探1.1 OpenStack简介 OpenStack是一整套开源软件项目的综合,它允许企业或服务提供者建立.运 ...

  5. 夯实Java基础系列15:Java注解简介和最佳实践

    Java注解简介 注解如同标签 Java 注解概述 什么是注解? 注解的用处 注解的原理 元注解 JDK里的注解 注解处理器实战 不同类型的注解 类注解 方法注解 参数注解 变量注解 Java注解相关 ...

  6. 大数据入门基础系列之Hadoop1.X、Hadoop2.X和Hadoop3.X的多维度区别详解(博主推荐)

    不多说,直接上干货! 在前面的博文里,我已经介绍了 大数据入门基础系列之Linux操作系统简介与选择 大数据入门基础系列之虚拟机的下载.安装详解 大数据入门基础系列之Linux的安装详解 大数据入门基 ...

  7. mybatis基础系列(一)——mybatis入门

    好久不发博客了,写博文的一个好处是能让心静下来,整理下之前学习过的一些知识一起分享,大神路过~ mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...

  8. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...

  9. 夯实Java基础系列5:Java文件和Java包结构

    目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...

随机推荐

  1. rocketMQ基本理解

    消息中间件需要解决哪些问题? Publish/Subscribe 发布订阅是消息中间件的最基本功能,也是相对于传统RPC通信而言. Message Priority 规范中描述的优先级是指在一个消息队 ...

  2. mySQL 多表查询语句

    多表查询最少有2张以上的表一起查询 交叉连接查询(很少用)查询出来的数据是错误的 内连接 [inner] join on 隐式省略inner join on select  from 表A,表B wh ...

  3. Ubuntu16.04 + Digits + caffee

    reference: csdn 必要依赖包安装 sudo apt-get install build-essential sudo apt-get install --no-install-recom ...

  4. 解题报告:hdu 1005 number subsequent

    2017-09-06 20:35:59 writer:pprp 本来以为这是一道水题,写了一个递归就赶紧交上去了, 结果超时了,看看数据范围100000000,肯定把栈给爆了 想用记忆化的方法,但是虽 ...

  5. hdu4310 - Hero - 简单的贪心

    2017-08-26  15:25:22 writer:pprp 题意描述: • 1 VS n对战,回合制(你打他们一下,需要受到他们所有存活人的攻击)• 你的血量无上限,攻击力为1• 对手血量及攻击 ...

  6. MySQL-性能优化-优化设计和设计原则

    MySQL性能优化目的如何合理的设计数据库?什么样的数据库设计才能给后期DBA优化提供基石? 数据库设计与程序设计的差异? 数据库设计早期优化1. 关系明确(理清表之间的关系,可以通过冗余的方式提高效 ...

  7. vue element new vue const

    new Vue{ el:"app", } ========= const app = new Vue({ router, data:{....} }).$mount('#app') ...

  8. Huffuman Coding (哈夫曼编码)

    哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种.Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头 ...

  9. CentOS7下Firewall常用命令

    安装它,只需 yum install firewalld 如果需要图形界面的话,则再安装 yum install firewall-config 一.介绍 防火墙守护 firewalld 服务引入了一 ...

  10. linux命令详解(一)

    linux命令 在使用linux环境进行工作和学习中,我们更多时间是手指在键盘上跳动.这里,我们就来说linux命令使用吧在linux环境中,显然不能记下所有的命令及其使用规则,那么这时,man,he ...