如何在Spring Boot应用程序中禁用事务管理器?
我有这个例外:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.transaction.PlatformTransactionManager] is defined
由于@Transactional注释(我在其他应用中使用这些注释,所以我无法删除,但有一种方法可以忽略它?通过禁用事务管理器?)。
答案 0 :(得分:3)
我猜你有三个选择:
删除注释
提供交易管理员
排除添加@EnableTransactionManagement
在Spring Boot应用程序中,如果您使用的是JDBC或JPA,则只能获得@EnableTransactionManagement
,所以实际上应该有一个事务管理器。我可以看到一个不存在的唯一原因是你在类路径上有spring-jdbc但没有数据库。如果你的类路径上已经有spring-tx和spring-jdbc(似乎就是这种情况),你可以添加一个内存数据库(例如h2)来获取事务管理器。这对我来说似乎是最好的解决方案。但您也可以在DataSourceTransactionManagerAutoConfiguration
中排除@EnableAutoConfiguration
。