gpt4 book ai didi

java - Spring 中的事务方法

转载 作者:行者123 更新时间:2023-11-30 02:22:18 25 4
gpt4 key购买 nike

我多次问自己为什么我的代码没有将数据保存在数据库中。我的意思是,我已经用 @Transactional 注释了我的简单方法,一切似乎都很顺利,没有问题。经过一段时间的尝试发现原因后,我最终会记得我实际上是从同一个类的内部调用我的事务方法,因此 spring 会立即忽略该注释。我碰巧在这些情况下,我在 @Controller 层上将该方法标记为事务性的,这似乎限制了代码的可重用性。所以,关于这个问题我有两个疑问:

  • @Transactional 最好放置在 Spring 架构的哪一层(@Controller@Service 等..)?<
  • 为什么当从类内部调用带注释的方法时,spring会忽略该注释?

最佳答案

On which level of the spring architecture is the @Transactional best placed (@Controller, @Service etc..)?

根据我的经验,最好放在service层。您也可以将其添加到其他图层中,但要保持一致。因为如果您基于此“@Transactional”注释添加更多注释,它的行为在整个应用程序中应该是相同的。

Why exactly does spring ignore the annotation when the annotated method is called from the inside of the class?

您可以了解 Spring AOP 如何基于代理工作。这是您的引用资料 -

Spring nested transactions

@Transactional method calling another method without @Transactional anotation?

关于java - Spring 中的事务方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46457167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com