首页 > 试题广场 >

在一个 Spring 应用中,`ServiceA` 的方法

[单选题]
在一个 Spring 应用中,`ServiceA` 的方法 `methodA` 调用了同一个类中的 `methodB`。`methodA` 没有事务注解,而 `methodB` 使用了 `@Transactional(propagation = Propagation.REQUIRED)` 注解。当外部代码调用 `ServiceA.methodA()` 时,关于 `methodB` 的事务行为,以下哪个说法是正确的?
  • `methodB` 会正常启动一个新的事务,因为它被 `@Transactional` 注解。
  • `methodB` 的 `@Transactional` 注解将不会生效,该方法不会运行在事务上下文中。
  • Spring 容器会抛出 `IllegalStateException`,因为非事务方法不能调用事务方法。
  • 行为取决于使用的是 JDK 动态代理还是 CGLIB。只有 CGLIB 代理可以处理此种内部调用。
要用enable暴露代理?用动态代理?就可以了吗?
发表于 2025-09-15 17:27:52 回复(0)