spring-transactions相关内容

同步数据库和Kafka生产者之间的事务

我们有一个微服务架构,使用 Kafka 作为服务之间的通信机制.一些服务有自己的数据库.假设用户调用服务 A,这将导致在该服务的数据库中创建一条记录(或一组记录).此外,此事件应作为 Kafka 主题上的一个项目报告给其他服务.确保仅在 Kafka 主题成功更新后才写入数据库记录的最佳方法是什么(本质上是围绕数据库更新和 Kafka 更新创建分布式事务)? 我们正在考虑使用 spring-k ..
发布时间:2021-11-12 01:45:58 其他开发

正常的 Spring + Hibernate 事务行为?

我已经使用 Spring AOP 将我的 Spring + Hibernate 项目配置为事务性的. 当我使用 TransactionSynchronizationManager.isActualTransactionActive() 检查 DAO 方法时,它显示为 true. 我正在从我的服务类调用两个 DAO 方法,在第二个 DAO 方法中,我故意执行 'devide by zer ..
发布时间:2021-11-11 04:43:06 其他开发

如何在没有接口的情况下使用 Load Time Weaving 配置 AspectJ

在我的项目中,我目前在编译时使用 AspectJ(由于某些限制而不仅仅是 Spring AOP)和编织.为了加快在Eclipse上的开发,我想在Load Time做编织.我成功地做到了这一点,但有一个主要限制:为我的服务使用包含一些事务方法的接口.如果我用它的实现而不是它的接口来声明服务,在调用者类中,没有编织,所以不支持事务. 那么如果AspectJ支持,如何配置AspectJ的Load ..
发布时间:2021-11-11 04:25:49 其他开发

@Transactional 和 AOP 之间的混淆

@Transactional 是否在 spring 3 中替代 AOP.它们相同吗?我可以说@Transactional 在内部实现 AOP 吗? 解决方案 @Transactionnal 注释只是一种简单的方式来声明一个方法(或一个类的所有方法)都是事务性的. Spring Framework 将使用 AOP 代理来拦截对方法的调用并管理事务. 所以,我们可以说 @Trans ..
发布时间:2021-11-11 04:25:11 其他开发

旧的“@Transactional from the same class"情况

原始问题概要: 使用带有 AOP 代理的标准 Spring 事务,不可能从同一类中的非 @Transactional-marked 方法调用 @Transactional-marked 方法,并且在交易中(特别是由于上述代理).这在 AspectJ 模式下使用 Spring Transactions 应该是可能的,但它是如何完成的? 编辑:在 AspectJ 模式下使用 Load-Time ..
发布时间:2021-11-11 04:20:00 其他开发

JTA 和 Spring @Transactional 注解的区别

我已经开始使用Spring的@Transactional注解,它为管理事务提供了很多便利.然而,在我们的代码中使用这个注解现在让我们依赖于 Spring.我知道 JPA 类型的东西有一个 javax persistence 包,我们在其中可以用 JPA 注释来标记各种代码,但由于它们都来自 javax.persistence,我们的代码不依赖于任何特定的实现或 ORM. 我想我的问题是是否有 ..
发布时间:2021-11-10 22:23:35 其他开发

spring 多个事务管理器,运行时选择一个

对于每个客户端,我有单独的数据库,但每个客户端的业务逻辑和表都是相同的.我想要每个客户端的公共服务和 dao 层.在 dao 中,我根据登录的用户客户端选择数据源.在 @Transactional 中,我必须传递事务管理器的 bean id.如何使用@Transactional注解制作公共服务层. 同样的问题在这里 多个事务管理器 - 在运行时 - Spring 在运行时选择多个 ..
发布时间:2021-09-09 19:13:04 其他开发

多个事务管理器 - 在运行时选择一个 - Spring

我正在使用 Spring 在我的应用程序中配置事务.我为两个 RabbitMQ 服务器定义了两个事务管理器. ....@Bean(name = "devtxManager")公共 PlatformTransactionManager devtxManager() {返回新的 RabbitTransactionManager(devConnectionFactory());}@Bean(name ..
发布时间:2021-09-09 19:12:26 其他开发

Spring @Transactional value param with SpEL(Spring 表达式语言)

在我的一个服务类中,我注释了一些方法: @Transactional(value="foodb")公共栏 getMeSomething(){} 我最近通过 Spring EL 的强大功能了解了 @Value 来获取存储在属性文件中的一些值.比如 @Value("${my.db.name}") 这就像一个魅力. 现在我正在尝试做同样的事情 @Transactional(value=" ..
发布时间:2021-09-09 19:12:03 其他开发

@Transactional 注释的替代方案

spring 回滚事务除了@Transactional 注释之外还有什么选择.我已经使用了这个注释,但我想要我可以在 catch 块中回滚事务的方式.有什么办法吗? 提前谢谢. 解决方案 这是一个草稿: public class SomeService 实现 SomeInterface {private SomeDao thisDaoWrapsJdbcTemplate;私有 Pla ..
发布时间:2021-09-09 19:11:41 其他开发

使用 Spring 2.5 从外部事务控制内部事务设置

我使用的是 Spring 2.5 事务管理并且我有以下设置: Bean1 @Transactional(noRollbackFor = { Exception.class })公共无效执行(){尝试 {bean2.execute();} 捕获(异常 e){//在数据库中持久化失败(所以事务不应该失败)//异常不会重新抛出}} Bean2 @Transactional公共无效执行(){/ ..
发布时间:2021-09-09 19:11:27 其他开发

如何获取Spring事务管理器实例?

我使用注解来标记应该在事务中执行的方法. 但是,在一个地方我需要手动执行 transactionManager.rollback(),没有注释.如何获取 transactionManager 对象? 解决方案 如果要回滚当前事务,可以使用 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); ..
发布时间:2021-09-09 19:10:54 其他开发

交易传播的现实生活场景

有各种交易传播,比如 REQUIRED - 这是 DML 操作的情况. SUPPORTS - 这是查询数据库的情况. 强制性 - ?REQUIRES_NEW - ?不支持 - ?绝不 - ?嵌套 - ? 这些交易传播有哪些现实生活场景?为什么这些非常适合这种情况? 解决方案 用法多种多样,没有简单的答案,但我会尽量解释得最清楚 MANDATORY(期望交易):通常用于 ..
发布时间:2021-09-09 19:10:04 其他开发

提交事务后Spring是否关闭连接?

我最近在一篇教程中读到 Spring 在事务提交后关闭连接. 这是真的吗?我在 Spring 参考文档中找不到任何相关信息. 背后的原理是什么?从现在开始,我认为连接和事务之间存在一对多的关系. 解决方案 Spring 会在事务完成时调用 close(),这可能来自提交或回滚.close() 是否真正关闭真正的 JDBC 连接取决于 DataSource 配置.如果它是一个普通 ..
发布时间:2021-09-09 19:09:49 其他开发

Spring Kafka 中的事务同步

我想将 kafka 事务与存储库事务同步: @Transactional公共无效同步交易(){myRepository.save(someObject)kafkaTemplate.send(someEvent)} 自合并(https://github.com/spring-projects/spring-kafka/issues/373) 并且根据文档这是可能的.尽管如此,我在理解和实现该功能 ..
发布时间:2021-08-20 20:48:10 其他开发

spring @Transactional JDBC 模板 MySQL DB 不回滚

我正在尝试使用来自服务层调用的 jdbc 模板来实现 Spring @transactionalDAOImpl 中的 2 个插入方法并使用 simplejdbctemplate 插入,我在日志中看到 spring 在我的服务方法上创建了一个新事务,我的第一个插入成功,第二个插入失败,即使它说它正在回滚相同连接第一次插入永远不会从我的 Mysql 数据库回滚.(我使用的是 innodb 引擎). ..
发布时间:2021-08-20 20:46:50 其他开发

手动创建的多个数据源的事务管理

我正在开发一个应用程序,其中我必须根据从客户端传递的客户 ID 连接到不同的数据库.所有数据库的架构都是相同的.它是一种多租户应用程序.由于我不知道会有多少客户,我无法使用xml配置来静态创建数据源,因此我必须手动创建数据源. 我们使用 Spring JdbcTemplate 连接到数据库,连接参数来自另一个保存应用程序配置的数据库.我能够正确连接到数据库,但方法调用没有在事务中发生.以下是 ..
发布时间:2021-08-20 20:46:07 其他开发

SimpleMessageListenerContainer 在 TransactionSystemException 后持续消耗

当我的事务标记为回滚时,我不希望 SimpleMessageListenerContainer 继续使用消息. 我没有在我的配置文件中添加 listener-container 并试图重新抛出 AmqpRejectAndDontRequeueException.它不工作.这是我的代码库: @Transactional公共类 MySecondService {@资源私人 MySecondRe ..
发布时间:2021-08-20 20:44:42 其他开发