当前位置: 首页 > 知识库问答 >
问题:

当使用@Transactional注释方法时,具体会发生什么?创建代理的需求是什么?[副本]

陈松
2023-03-14

当使用@Transactional注释方法时,具体会发生什么?Do@Transactional仅在方法包含数据库操作以及需要创建代理时调用

我在采访中被问过几次这个问题,但在阅读各种博客的答案时,我没有得到任何澄清。

共有1个答案

柴嘉年
2023-03-14

@transactional-当在类级别声明此注释时,它将作为默认值应用于声明类及其子类的所有方法。请注意,它不适用于类层次结构上的祖先类;继承的方法需要在本地重新声明,以便参与子类级别的注释。有关方法可见性约束的详细信息,请参阅参考手册中的事务管理部分。

>

  • https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/annotation/transactional.html

    https://docs.spring.io/spring-framework/docs/current/reference/html/data-access.html#transaction

    https://docs.spring.io/spring-framework/docs/4.2.x/spring-framework-reference/html/transaction.html

  •  类似资料:
    • 嗨,一个星期以来,我一直在追踪我的办公代码中的一个错误。它与Spring、Hibernate和Transaction有关。 我所知道的: 1.延迟加载。 2. Spring如何使用代理和拦截器进行事务管理。 3. Spring中的事务传播,我们的代码使用默认的REQUIRED。 4.每个请求/会话的会话和Hibernate的分离实体基础来保持会话,以及我们的会话不是每个会话的事实。 我的场景:我的

    • 问题内容: 我想知道当你使用注释方法时实际发生了什么?当然,我知道Spring将把该方法包装在Transaction中。 但是,我有以下疑问: 听说Spring创建了代理类?有人可以更深入地解释这一点。该代理类中实际包含什么?实际班级会怎样?我怎么能看到Spring创建的代理类 我还在Spring文档中读到: 注意:由于此机制基于代理,因此仅会拦截通过代理传入的“外部”方法调用。这意味着“自调用”

    • 问题内容: 我的老师给我一个问题: “用Java创建对象时会发生什么”。 据我所知,创建对象时会发生内存分配,变量初始化和构造函数方法调用。 但是我的老师说我几乎是对的。后面的两件事是正确的,除了内存堆。相反,他说发生了内存分配。我认为对象存储在堆中,所以我的老师错了。你这样认为吗? 问题答案: 与往常一样,找到针对此类问题的解决方案的最佳位置是Java语言规范。 具体来说,从创建新实例的部分可以

    • 当我用main方法为类创建对象时会发生什么?我能在main方法中使用这些实例变量吗,因为它们在同一个类中?

    • 有ManyToOne链接的表。每个学生被分配一个方向从教育方向。当我创建学生时,所选方向被重新创建。为什么在创建学生时创建方向? 学生: 教育方向: 学生道: