https://blog.csdn.net/liangkun0124/article/details/51306886

https://blog.csdn.net/majian_1987/article/details/42001797

一、基本概念:

1、java体系:

Java分为三个体系,分别为Java SE(J2SE,Java2Platform Standard Edition,标准版),JavaEE(J2EE,Java 2Platform, Enterprise Edition,企业版),Java ME(J2ME,Java 2Platform Micro Edition,微型版)。

2、JSR:

JSR是JavaSpecification Requests的缩写,意思是“Java 规范提案”。是指向JCP(JavaCommunity Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。简单的就是jsr是java开发者以及授权者指定的标准,而java开发者以及授权者形成一个jcp国际组织。职能是指定java标准。

3、JCP

JCP由SUN于1995年创造Java的非正式过程,演进到如今有数百名来自世界各地Java代表成员一同监督Java发展的正式程序 。(出自百度)

Jcp官方网站是:https://www.jcp.org/en/home/index

二、核心内容:

1、JSR由来:

JCP维护的规范包括J2ME、J2SE、J2EE,XML,OSS,JAIN等。组织成员可以提交JSR(Java Specification Requests),通过特定程序以后主要包括(Java技术规范、参考实现(RI)、技术兼容包(TCK)),进入到下一版本的规范里面。

所有声称符合J2EE规范的J2EE类产品(应用服务器、应用软件、开发工具等),必须通过该组织提供的TCK兼容性测试(需要购买测试包),通过该测试后,需要缴纳J2EE商标使用费。两项完成,即是通过J2EE认证(Authorized Java Licensees of J2EE)。

JSRs是指定的一些标准,在JCP官网上提供了相应标准的下载(https://www.jcp.org/en/home/index)。下面列出了基于java三个平台的一系列标准JSR(标准)链接:

Java EE (54 JSRs) (https://www.jcp.org/en/jsr/platform?listBy=3&listByType=platform)

Java SE (57 JSRs) (https://www.jcp.org/en/jsr/platform?listBy=2&listByType=platform)

Java ME (85 JSRs) (https://www.jcp.org/en/jsr/platform?listBy=1&listByType=platform)

现在我们进入到一个(Java EE (54 JSRs))标准的JSR下载页面(JSR-000907 JTA)的API标准:

其中有下载链接有两个文档,从字面意思明白一个是这些规则及标准的评估,一个是这些规则的实施,打开实施规则的文档可以看出,这些标准提供了一些接口文档和协议。里面提供了一些面对开发人员的接口以及面对具体实现接口的各个软件公司,也就是这些接口的具体的实现包,由各个软件厂商实现。

发人员使用开发人员接口(UserTransaction),实现应用程序对全局事务的支持;各提供商依据提供商接口(Transaction)实现事务资源管理功能;事务管理器(TransactionManager )将开发人员对事务的使用映射到实际的事务资源并在事务资源间进行协调与控制。 下面,本文将对包括UserTransaction、Transaction和 TransactionManager 在内的三个主要接口以及其定义的方法进行介绍。

UserTransaction:

面向开发人员的接口为 UserTransaction,开发人员通常只使用此接口实现 JTA 事务管理,其定义了如下的方法:

begin()- 开始一个分布式事务

commit()- 提交事务

rollback()- 回滚事务

getStatus()- 返回关联到当前线程的分布式事务的状态

setRollbackOnly()- 标识关联到当前线程的分布式事务将被回滚

TransactionManager:

面向提供商的实现接口主要涉及到 TransactionManager 和 Transaction 两个对象

Transaction 代表了一个物理意义(具体实现)上的事务,在开发人员调用 UserTransaction.begin() 方法时 TransactionManager 会创建一个 Transaction 事务对象(标志着事务的开始)并把此对象通过 ThreadLocale 关联到当前线程。UserTransaction 接口中 的 commit()、rollback(),getStatus() 等方法都将最终委托给 Transaction 类的对应方法执行。

Transaction 接口定义了如下的方法:

commit()- 协调不同的事务资源共同完成事务的提交

rollback()- 协调不同的事务资源共同完成事务的回滚

setRollbackOnly()- 标识关联到当前线程的分布式事务将被回滚

getStatus()- 返回关联到当前线程的分布式事务的状态

enListResource(XAResource xaRes, int flag)- 将事务资源加入到当前的事务中

delistResourc(XAResource xaRes, int flag)- 将事务资源从当前事务中删除

registerSynchronization(Synchronization sync)- 回调接口,Hibernate 等 ORM 工具都有自己的事务控制机制来保证事务,但同时 它们还需要一种回调机制以便在事务完成时得到通知从而触发一些处理工作,如清除缓存等。当事务成功提交后,回调程序将被激活。

TransactionManager 本身并不承担实际的事务处理功能,它更多的是充当用户接口和实现接口之间的桥梁。

TransactionManager 中定义的方法:(大部分事务方法与 UserTransaction 和 Transaction 相同)

begin()- 开始事务

commit()- 提交事务

rollback()- 回滚事务

getStatus()- 返回当前事务状态

setRollbackOnly()

getTransaction()- 返回关联到当前线程的事务

setTransactionTimeout(int seconds)- 设置事务超时时间

resume(Transaction tobj)- 继续当前线程关联的事务

suspend()- 挂起当前线程关联的事务

在系统开发过程中会遇到需要将事务资源暂时排除的操作,此时就需要调用 suspend() 方法将当前的事务挂起:在此方法后面所做的任何操作将不会被包括在事务中,在非事务性操作完成后调用 resume()以继续事务(注:要进行此操作需要获得 TransactionManager 对象,其获得方式在不同的 J2EE 应用服务器上是不一样的)。

至此,你也可以自己实现JSRs标准的JTA事务管理了(具体实现在以后的章节中实现)这篇博文知识让各位看官理解java的一些标准的相关定义。以后的博文大多是基于javaEE来进行的。

JSR规范整理

  • Web Service技术

    • Java Date与Time API (JSR 310)
    • Java API for RESTful Web Services (JAX-RS) 1.1 (JSR 311)
    • Implementing Enterprise Web Services 1.3 (JSR 109)
    • Java API for XML-Based Web Services (JAX-WS) 2.2 (JSR 224)
    • Java Architecture for XML Binding (JAXB) 2.2 (JSR 222)
    • Web Services Metadata for the Java Platform (JSR 181)
    • Java API for XML-Based RPC (JAX-RPC) 1.1 (JSR 101)
    • Java APIs for XML Messaging 1.3 (JSR 67)
    • Java API for XML Registries (JAXR) 1.0 (JSR 93)
  • Web应用技术
    • Java Servlet 3.0 (JSR 315)
    • JavaServer Faces 2.0 (JSR 314)
    • JavaServer Pages 2.2/Expression Language 2.2 (JSR 245)
    • Standard Tag Library for JavaServer Pages (JSTL) 1.2 (JSR 52)
    • Debugging Support for Other Languages 1.0 (JSR 45)
  • 企业应用技术
    • Contexts and Dependency Injection for Java (Web Beans 1.0) (JSR 299)
    • Dependency Injection for Java 1.0 (JSR 330)@postConstruct, @PreDestroy
    • Bean Validation 1.0 (JSR 303)
    • Enterprise JavaBeans 3.1 (includes Interceptors 1.1) (JSR 318)
    • Java EE Connector Architecture 1.6 (JSR 322)
    • Java Persistence 2.0 (JSR 317)
    • Common Annotations for the Java Platform 1.1 (JSR 250)
    • Java Message Service API 1.1 (JSR 914)
    • Java Transaction API (JTA) 1.1 (JSR 907)
    • JavaMail 1.4 (JSR 919)
  • 管理与安全技术
    • Java Authentication Service Provider Interface for Containers (JSR 196)
    • Java Authorization Contract for Containers 1.3 (JSR 115)
    • Java EE Application Deployment 1.2 (JSR 88)
    • J2EE Management 1.1 (JSR 77)
  • Java SE中与Java EE有关的规范
    • JCache API (JSR 107)
    • Java Memory Model (JSR 133)
    • Concurrency Utilitie (JSR 166)
    • Java API for XML Processing (JAXP) 1.3 (JSR 206)
    • Java Database Connectivity 4.0 (JSR 221)
    • Java Management Extensions (JMX) 2.0 (JSR 255)
    • Java Portlet API (JSR 286)
    • 模块化 (JSR 294)
    • Swing应用框架 (JSR 296)
    • JavaBeans Activation Framework (JAF) 1.1 (JSR 925)
    • Streaming API for XML (StAX) 1.0 (JSR 173)
  • 如果希望知道各种技术的更多细节(包括各份规范的下载链接),请访问Java EE 6技术页面。

Java的JSR规范相关推荐

  1. java ee规范_测试Java EE 8规范

    java ee规范 Java EE 8平台肯定在过去的几个月中一直在发展. 规范已经发布了早期的草案评审,里程碑甚至最终版本. 实际上,随着JSF 2.3的发布,JSR-372才刚刚进入最终版本. 有 ...

  2. 测试Java EE 8规范

    Java EE 8平台肯定在过去的几个月中一直在发展. 规范已经发布了早期的草案评审,里程碑甚至最终版本. 实际上,随着JSF 2.3的发布,JSR-372才刚刚进入最终版本. 有关更多信息,请参见 ...

  3. java SE 7规范(又名JDK 7)

    转载自:http://www.javalord.com/javalordblog/?p=349 java SE 7规范(又名JDK 7)开发进展很顺利,计划于2011年夏天发布最终版本.为了让开发者能 ...

  4. JSR规范系列(2)——JavaSE规范、JavaEE规范、JSR规范全面整理——截止201912

    目录 JCP组织和JSR规范 符合JSR规范的框架 JavaSE规范 JavaEE规范 网上找不到详细的资料,劳资自己动手写一篇~ 前面写了Java版本.JSR规范和JCP社区流程概述,接下来看看JS ...

  5. Java 标准与规范

    A Advanced Multimedia Supplements 一个提供了先进的多媒体功能的可选包,用于在 Java ME/CLDC 环境中为 Mobile Media API 提供附加功能. A ...

  6. 【转】JAVA EE 6 规范综述

    目录 1.JAVA EE规范综述 2.JAVA EE整体架构 3.JAVA EE规范的角色划分图 4.JAVA EE平台依赖的J2SE API 5.JAVA EE平台的版本变迁 6.JAVA EE平台 ...

  7. java基础和规范一

    (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没有考虑到会坚持往后边写,这次应该是更新该内容.而且很讨厌写基础的东西,内容比较琐碎,而且整理起来总会很多,有可能会打散成两 ...

  8. 华为java安全编码规范_Java安全编码之SQL注入

    随着互联网的发展,Java语言在金融服务业.电子商务.大数据技术等方面的应用极其广泛.Java安全编码规范早已成为SDL中不可或缺的一部分.本文以Java项目广泛采用的两个框架Hibernate和My ...

  9. eclipse java代码某一行需要修改注释_看看这些Java代码开发规范吧!你好,我好,大家好!...

    作为一名开发人员,当你接手他人的项目时,且当你阅读他人的代码时,是有没有遇到脑袋充血,感觉Java要把你"送走"的感觉呢?我们在用Java开发技术进行开发前,一定要牢牢恪守Java ...

最新文章

  1. iPhonexr安兔兔html5测试,给大家科普下iphonexr苹果手机安兔兔跑分多少分
  2. mysql数据库备份工具expdb,使用expdp完成自动备份数据库案例以及遇到的问题
  3. 【Uva - 10047 】The Monocycle(搜索,bfs记录状态)
  4. 物联网安全白皮书_天翼物联网安全白皮书发布 有方科技参与编纂
  5. 深度学习attention原理_深度原理学习–Redis集群
  6. 用脚本整理Leetcode题解
  7. 初见,Devexpress
  8. aload、aload_1、iload都是什么意思
  9. [徐培成系列实战课程]-docker篇-前序
  10. Homekit直连的灯带控制套装
  11. 苹果手机投屏电脑win7
  12. Unity_粒子系统特效制作_051
  13. 【记录30】条形码的生成
  14. 如何通过三视图判断立方体个数_“三视图”“小正方体个数”一篇搞定!
  15. usb string 描述符以及语言ID
  16. 电脑录屏没有声音该怎么办
  17. opengl png图片 qt_Qt学习:三维绘图之OpenGL和Qt的结合(转)
  18. rails连接Mysql的数据库
  19. 机器人技术想要取得快速发展,主要面临哪些挑战?
  20. 屏幕距离和坐便转换工具_投影幕尺寸计算、投影距离计算、观影距离计算

热门文章

  1. linux 安装搜狗输入法
  2. linux tomcat 默认虚拟内存,tomcat 虚拟内存配置
  3. SQL Server 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复到SQL Server2005
  4. 台式机计算机型号怎么查,电脑配置怎么查询?笔记本台式机查询电脑配置的四种方法...
  5. ArchiCAD 24 Mac版3D建筑模型设计和分析软件新功能介绍
  6. html中span标签字数大小,DIV字体大小 span字体大小 font-size样式
  7. python实现艺龙爬虫
  8. leptonica 学习笔记2——pixBackgroundNormSimple
  9. 霸县计算机学校,临漳县职教中心转发关于通报2012年河北省中等职业学校教学管理工作督导检查情况的通知...
  10. 数据分析中的细分维度