jta

SpringBoot笔记

风格不统一 提交于 2021-02-13 09:37:10
1. 今日大纲 1、 了解Spring的发展 2、 掌握Spring的java配置方式 3、 学习Spring Boot 4、 使用Spring Boot来改造购物车系统 2. Spring的发展 2.1. Spring1.x 时代 在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xml配置文件中切换。 2.2. Spring2.x时代 随着JDK 1.5带来的注解支持,Spring2.x可以使用注解对Bean进行申明和注入,大大的减少了xml配置文件,同时也大大简化了项目的开发。 那么,问题来了,究竟是应该使用xml还是注解呢? 最佳实践: 1、 应用的基本配置用xml,比如:数据源、资源文件等; 2、 业务开发用注解,比如:Service中注入bean等; 2.3. Spring3.x到Spring4.x 从Spring3.x开始提供了Java配置方式,使用Java配置方式可以更好的理解你配置的Bean,现在我们就处于这个时代,并且Spring4.x和Spring boot都推荐使用java配置的方式。 3. Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置。 3.1. @Configuration 和 @Bean

ARJUNA012140: Adding multiple last resources is disallowed

非 Y 不嫁゛ 提交于 2021-02-10 14:35:14
问题 I have 2 data source and in a method, I need to write and read from the 2 databases. The database is PostgreSQL and my EAR app runs on wildfly-16. I can't use 2 database connection in the same method Ok, I know that because the system can't manage a transaction across the different database. So I splitted the methods in my ejb : @TransactionAttribute(TransactionAttributeType.NEVER) public Response mainMethod(String parameter) { method1(); method2() } @TransactionAttribute

ARJUNA012140: Adding multiple last resources is disallowed

懵懂的女人 提交于 2021-02-10 14:34:08
问题 I have 2 data source and in a method, I need to write and read from the 2 databases. The database is PostgreSQL and my EAR app runs on wildfly-16. I can't use 2 database connection in the same method Ok, I know that because the system can't manage a transaction across the different database. So I splitted the methods in my ejb : @TransactionAttribute(TransactionAttributeType.NEVER) public Response mainMethod(String parameter) { method1(); method2() } @TransactionAttribute

官方Spring Boot starters整理

不问归期 提交于 2021-02-02 18:45:08
Spring Boot starters Spring Boot 的功能组件(例如 spring-boot-starter-actuator、 spring-boot-starter-data-redis 等)的步骤非常简单,用著名的把大象放冰箱的方法来概括的话,有以下三步就可以完成组件功能的使用: STEP 1 在 pom 文件中引入对应的包,例如: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> STEP 2 在应用配置文件中加入相应的配置,配置都是组件约定好的,需要查看官方文档或者相关说明。有些比较复杂的组件,对应的参数和规则也相应的较多,有点可能多大几十上百了。 STEP 3 以上两步都正常的情况下,我们就可以使用组件提供的相关接口来开发业务功能了。下面我整理了官方提供的starter.我们来看一看. 1、application starters 应用程序级的 Starters <table> <thead> <tr> <th>Starter 名称</th> <th>Starter 描述</th> </tr> </thead> <tbody> <tr> <td>spring

201771010126 王燕《面向对象程序设计(java)》第十八周学习总结

回眸只為那壹抹淺笑 提交于 2021-02-01 05:52:28
实验十八 总复习 实验时间 2018-12-30 1 、实验目的与要求 (1) 综合掌握java基本程序结构; (2) 综合掌握java面向对象程序设计特点; (3) 综合掌握java GUI 程序设计结构; (4) 综合掌握java多线程编程模型; (5) 综合编程练习。 2 、实验内容和步骤 任务1 :填写课程课后调查问卷,网址:https://www.wjx.cn/jq/33108969.aspx。 任务2: 综合编程练习 练习1:设计一个用户信息采集程序,要求如下: 1 package project1; 2 3 import java.awt.* ; 4 import java.awt.event.* ; 5 import javax.swing.* ; 6 import javax.swing.border.* ; 7 8 public class test extends JFrame { 9 public test() { 10 JPanel panel1 = new JPanel(); 11 panel1.setPreferredSize( new Dimension(700, 45 )); 12 panel1.setLayout( new GridLayout(1, 4 )); 13 JLabel label1 = new JLabel("Name:" );

分布式事务(二):TCC模型

我的未来我决定 提交于 2021-01-30 00:55:43
TCC介绍 TCC概念由Pat Helland于2007年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出,在该论文中,TCC还是以Tentative-Confirmation-Cancellation命名。 正式以Try-Confirm-Cancel作为名称的是Atomikos公司。 认识TCC TCC区别于 XA事务 ,是一种用于分布式系统中跨服务的事务管理模型;此模型通过管理服务,而不是资源管理器实现。 TCC是一种补偿型事务,也是一种柔性事务(存在中间态),该模型要求应用服务提供 try、confirm、cancel 三个接口,分别对应资源预留、操作确认、操作取消业务逻辑。 在TCC模型中,如果事务可以提交,则完成对预留资源的确认(调用confirm),如果事务要回滚,则释放预留的资源(调用cancel)。 TCC中try、confirm、cancel接口需要考虑幂等。 TCC区别于XA模型以及JAVA中的JTA接口,主要依赖业务代码实现;不用考虑框架、资源管理器、通信协议的支持和规范。 TCC与XA对比 TCC中对资源的锁是基于业务代码实现(这里的锁意思就是try接口中的预留动作),而XA基于数据库的序列化隔离级别实现。 TCC可以解决XA中单点以及并发的问题

JEE7 @Transactional annotation not always fires

橙三吉。 提交于 2021-01-28 23:40:31
问题 For several days I'm trying to manage with JPA transactions after moving to WildFly 8 server and JEE7 and I cannot understand why in some cases @Transactional (javax.transaction.Transactional) annotation doesn't intercept method annotated with it. I cannot see any rule why sometimes it works and sometimes not. Example of my not working code: import javax.inject.Inject; import javax.inject.Named; import javax.persistence.EntityManager; import javax.faces.view.ViewScoped; import com.i4u.app

分布式事务解决方案之XA/JTA两阶段提交方案,MQ消息最终一致性方案,TCC补偿性方案

我的未来我决定 提交于 2021-01-20 20:53:04
前言 本文主要讲解不同场景下分布式事务的解决方案,以及区别和相关理论。(部分图片来自网络) 一、分布式事务的相关理论 CAP理论: 一致性(Consistency) 可用性(Availability) 分区容错(Partition-tolerance) 一个分布式系统最多只能满足以上的两项,分区容错性是分布式系统必然需要面对和解决的问题,因此在一些大型互联网公司都会把精力放在如何在C(一致性)和A(可用性)之间寻求平衡。 BASE理论 基本可用(Basically Available) 指分布式系统在出现不可预知故障的时候,允许损失部分可用性。 软状态( Soft State) 指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。 最终一致( Eventual Consistency) 强调的是所有的数据更新操作,在经过一段时间的同步之后,最终都能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。 BASE理论即在整体可用的情况下,满足最终一致性,BASE理论可以说是CAP理论的拓展。 二、分布式事务解决方案 1.跨库事务(强一致性事务) 跨库事务即在一个jvm内调用两个数据库。 XA是由X/Open组织提出的分布式事务的规范

spring transaction源码分析--事务架构

只愿长相守 提交于 2020-12-01 18:23:47
1. 引言 事务特性 事务是并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务将逻辑相关的一组操作绑定在一起,以便服务器 保持数据的完整性。事务通常是以begin transaction开始,以commit或rollback结束。Commint表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据的更新写回到磁盘上的物理数据库中去,事务正常结束。Rollback表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始的状态。   原子性(Atomic) 对数据的修改要么全部执行,要么全部不执行。   一致性(Consistent) 在事务执行前后,数据状态保持一致性。   隔离性(Isolated) 一个事务的处理不能影响另一个事务的处理。   持续性(Durable) 事务处理结束,其效果在数据库中持久化。 Java事务的类型 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 1、JDBC事务 JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:自动提交和手工提交。 java.sql

Spring面试题实战整理,Java开发求职BAT的必经之路

喜欢而已 提交于 2020-10-25 13:34:51
Spring 概述 什么是 Spring? Spring 是个 Java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进良好的编程习惯。 使用 Spring 轻量:Spring 是轻量的,基本的版本大约 2MB。 控制反转:Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 面向切面的编程(AOP): :Spring 支持面向切面的编程,并且把应用业务逻辑和系统服务分开容器:Spring 包含并管理应用中对象的生命周期和配置。 MVC 框架:Spring 的 WEB 框架是个精心设计的框架,是 Web 框架的一个很好的替代品。 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。 异常处理: :Spring 提供方便的 API 把具体技术相关的异常(比如由 JDBC,Hibernate or JDO抛出的)转化为一致的 unchecked 异常。 Spring 由哪些模块组成? 以下是 Spring 框架的基本模块: Core module Bean module Context module Expression