因为一些原因,我要做个测试,就是关闭所有事务的情况下所出现的情况。
怎么把整个项目的 @Transactional事务都关掉?包括jar里的。
有什么注解么?
让整个项目处于无事务状态

如何关闭springboot中的所有 @Transactional功能?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- kse_music 2022-07-20 18:33关注
@Component public class CustomBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor { @Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { registry.removeBeanDefinition("transactionAttributeSource"); AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.rootBeanDefinition(AnnotationTransactionAttributeSource.class).setRole(2).getBeanDefinition(); AnnotationMethodMatcher methodMatcher = new AnnotationMethodMatcher(Exclude.class); beanDefinition.setInstanceSupplier(() -> new AnnotationTransactionAttributeSource(){ @Override public TransactionAttribute getTransactionAttribute(Method method, Class<?> targetClass) { return null; } }); registry.registerBeanDefinition("transactionAttributeSource", beanDefinition); } @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报