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. 20145314郑凯杰 《Java程序设计》实验五 实验报告

    20145314郑凯杰 <Java程序设计>实验五 实验报告 实验搭档王亦徐:http://www.cnblogs.com/1152wyx/p/5471524.html 实验要求 完成实验 ...

  2. slf4j和log4j、logback

    现在主流java项目一般使用slf4j+log4j的日志方案,最近抽点时间扫了一下slf4j.log4j.logback的官方文档,做个笔记.这篇比较不打算描述具体的配置方法,因为官方文档已经讲得很清 ...

  3. poj 2187:Beauty Contest(旋转卡壳)

    Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 32708   Accepted: 10156 Description Bes ...

  4. Codeforces - 828E DNA Evolution —— 很多棵树状数组

    题目链接:http://codeforces.com/contest/828/problem/E E. DNA Evolution time limit per test 2 seconds memo ...

  5. 数据库访问辅助类SqlHelper

    程序访问数据库需要进行的操作有创建与某个指定数据库的连接, 然后打开创建好的连接,创建执行指令(也就是sql执行代码), 最后执行指令,关闭创建的连接,释放资源. ado.net是一组用于和数据源进行 ...

  6. xdebug 常用函数

    转自:http://blog.csdn.net/samxx8/article/details/7050282 string xdebug_call_class()返回当前被调用的函数或方法所属的类的类 ...

  7. 【Python】简单实现爬取小说《天龙八部》,并在页面本地访问

    背景 很多人说学习爬虫是提升自己的一个非常好的方法,所以有了第一次使用爬虫,水平有限,依葫芦画瓢,主要作为学习的记录. 思路 使用python的requests模块获取页面信息 通过re模块(正则表达 ...

  8. 由angular命令行工具(angular-cli)生成的目录和文件

    e2e目录:是端到端的测试目录,包含基本的测试桩.是用来做自动测试的. src:应用源代码目录.我们写的所有代码都应该在这里面. app:包括应用的组件和模块.我们自己写的绝大部分代码都是写在这个目录 ...

  9. [spring]<context:component-scan/>使用

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  10. java中使用Lambda表达式的5种语法

    1,标准写法 思考下述情况: String[] arr = {"program", "creek", "is", "a" ...