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郑凯杰《信息安全系统设计基础》第5周学习总结 part B

    20145314郑凯杰<信息安全系统设计基础>第5周学习总结 part B 在前四天的学习中,我主要对课本知识进行了总结,在本周后三天的学习过程中,我进行实践并截图. http://www ...

  2. shell编程(二)

    case判断 前面了解了shell编程的if判断,其实除了if判断,还有case判断. case语法: case VAR in case1) command1 ;; case2) command2 ; ...

  3. mysql增量备份脚本

    #!/bin/sh ############################### # 此脚本用来增量备份 # 此文件名:mysqldailybackup.sh # # Author: zhangro ...

  4. python-集合、字典

    文件操作: open() read() readline() readlines() write() writelines() flush()   #刷新缓冲区 seek()   修改文件读写指针 t ...

  5. Scrapyd 项目爬虫部署

    scrapyd是一个用于部署和运行scrapy爬虫的程序,它允许你通过JSON API来部署爬虫项目和控制爬虫运行 scrapyd是一个守护进程,监听爬虫的运行和请求,然后启动进程来执行它们 安装扩展 ...

  6. 数据结构实习 - Problem N 树的括号表示法

    writer:pprp date:20171103 题目描述 先将根结点放入一对圆括号中,然后把它的子树按由左而右的顺序放入括号中,而对子树也采用同样方法处理:同层子树与它的根结点用圆括号括起来,同层 ...

  7. IIS和ASP.NET MVC 管道处理模型

    转载自  博客园 青羽 http://www.cnblogs.com/tenghoo/archive/2009/11/04/IIS_And_ASPNET_Http_Runtime_Pipeline.h ...

  8. maven笔记(1)

    maven环境搭建:http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html 项目管理利器(Maven)——常用的构建命令1. mvn - ...

  9. 为什么需要超出48K的音频采样率,以及PCM到DSD的演进

    网上很多观点说,根据采样定理,48K的音频采样率即可无损的表示音频模拟信号(人耳最多可以听到20K的音频),为何还需要96K, 192K等更高的采样率呢?最先我也有这样的疑问,毕竟采样定理是经过数学家 ...

  10. IOS加载PDF文件

    今天的任务是:在iOS上加载显示pdf文件. 方法一:利用webview -(void)loadDocument:(NSString *)documentName inView:(UIWebView  ...