当前位置: 首页 > 面试题库 >

春季:注释驱动的事务管理器

于意智
2023-03-14
问题内容

我正在建立一个新的JPA + Spring项目。(对于我来说,作为程序员)之间的区别是什么?

<tx:annotation-driven transaction-manager="transactionManager" />

<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager" />

在我的applicationContext.xml中?


问题答案:

代理和字节码编织方面之间存在巨大差异。代理只能在调用来自“外层空间”的情况下进行拦截,而不能在调用来自对象本身的情况下进行拦截(this.transactionalMethod())

这意味着,如果您有一个带有两个方法T和B的Class。Method T具有事务注释,并且方法由” B调用,则永远不会调用(for
)代理,因此在这种情况下不会进行事务处理!T``“this.T()``T

如果您使用AspectJ,则事务处理代码在的字节代码中是织法的T,无论调用是来自对象本身还是来自其他对象,都将执行该事务处理代码。



 类似资料:
  • 问题内容: 只需要您对Spring声明式事务管理的专家意见。这是我的设置: DAO层是使用Spring JdbcTemplate的普通JDBC(没有Hibernate等) 服务层是具有声明式事务的POJO,如下所示- 通过上述设置,一切正常。但是,当我说时,我在日志文件中看到错误消息。对于服务层中的所有get *方法,都会发生这种情况。 现在我的问题是: 答:我必须设置为只读吗?我所有的方法都是纯

  • 问题内容: 我有一个非常简单的抽象类 现在您可以看到,我正在尝试自动连接DatabaseModel。但是在我的扩展类中,我只为dbModel接收null。 问题:我在这里尝试一些不可能的事情吗? 问题答案: 您的设置似乎很好。原因也许在其他地方。也许您正在使用实例化该类,而不是让spring这样做。

  • 我正在使用Spring(3.1.4版本)和HibernateTemplate(3.6.7.Final)以及Spring数据JPA(1.3.0版本)。我在配置文件中定义了两个事务管理器,一个用于Hibernate,另一个用于Spring数据JPA。两个事务管理器使用不同的数据源。 我想在代码中使用Hibernate的事务管理器和Spring data JPA的事务管理器。(Spring文档链接-10

  • 问题内容: 我想使用SpringContextTests测试我的Dao类。 在我的方法类中,我扩展了,以便我的测试类与JUnit4集成。我还设置了配置,并在和的DownDown中进行了初始化和数据库清理。我的测试课效果很好。 我的问题是,当我运行测试类并且数据库中充满了数据时,原始数据没有回滚并且数据库被清除了。在该方法中,我清除数据库并填充数据,以为我可以回滚数据库,但不能回滚。 任何人都可以找

  • 问题内容: 我在Spring Boot应用程序中使用一种应该异步运行的方法来做一个类。当我阅读方法时,应该加上注释,而且我还必须运行一个bean。但是在Spring手册http://docs.spring.io/spring/docs/current/spring- framework- reference/html/scheduling.html中, 我找不到任何信息或示例如何在没有XML配置的

  • 问题内容: 之间有什么区别? 在整个类中添加“ @Transactional”注释 为每个方法添加“ @Transactional”注释? 使用spring和Hibernate吗? 问题答案: 基本上,如果您用所有方法注释该类,则将是事务性的。如果您不这样做,则可以仅将其标注为所需的方法。此外,你可以为每个方法指定不同的属性,如,,,…