如何关闭springboot中的所有 @Transactional功能?

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


@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 {
    }

}

spring容器移除掉这个advisor就行了

img


方案很多,自己写个BeanFactoryPostProcess,移除掉bean就行了

试试排除事务的自动配置:
@SpringBootApplication(exclude = TransactionAutoConfiguration.class)