在Spring Boot应用程序中禁用事务管理器

时间:2014-11-24 10:52:41

标签: java spring spring-boot

如何在Spring Boot应用程序中禁用事务管理器?

我有这个例外:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.transaction.PlatformTransactionManager] is defined

由于@Transactional注释(我在其他应用中使用这些注释,所以我无法删除,但有一种方法可以忽略它?通过禁用事务管理器?)。

1 个答案:

答案 0 :(得分:3)

我猜你有三个选择:

  1. 删除注释

  2. 提供交易管理员

  3. 排除添加@EnableTransactionManagement

  4. 的配置类

    在Spring Boot应用程序中,如果您使用的是JDBC或JPA,则只能获得@EnableTransactionManagement,所以实际上应该有一个事务管理器。我可以看到一个不存在的唯一原因是你在类路径上有spring-jdbc但没有数据库。如果你的类路径上已经有spring-tx和spring-jdbc(似乎就是这种情况),你可以添加一个内存数据库(例如h2)来获取事务管理器。这对我来说似乎是最好的解决方案。但您也可以在DataSourceTransactionManagerAutoConfiguration中排除@EnableAutoConfiguration