org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager'

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘transactionManager’ available: No matching PlatformTransactionManager bean found for qualifier ‘transactionManager’ - neither qualifier match nor bean name match!
at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:136)
at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:95)
at org.springframework.transaction.interceptor.TransactionAspectSupport.determineQualifiedTransactionManager(TransactionAspectSupport.java:406)
at org.springframework.transaction.interceptor.TransactionAspectSupport.determineTransactionManager(TransactionAspectSupport.java:387)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:284)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.Proxy24.trans(UnknownSource)atxyz.xzxyz.App.testTrans(App.java:18)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:436)atorg.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:115)atorg.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambdaProxy24.trans(Unknown Source) at xyz.xzxyz.App.testTrans(App.java:18) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:436) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:115) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambdainvokeTestMethod6(TestMethodTestDescriptor.java:170)atorg.junit.jupiter.engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40)atorg.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:166)atorg.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:113)atorg.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:58)atorg.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor6(TestMethodTestDescriptor.java:170) at org.junit.jupiter.engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:166) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:113) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:58) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.lambda$executeRecursively3(HierarchicalTestExecutor.java:112)atorg.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)atorg.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor3(HierarchicalTestExecutor.java:112) at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.execute(HierarchicalTestExecutor.java:79)atorg.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.execute(HierarchicalTestExecutor.java:79) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.lambda$executeRecursively2(HierarchicalTestExecutor.java:120)atjava.util.stream.ForEachOps2(HierarchicalTestExecutor.java:120) at java.util.stream.ForEachOpsForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$21.accept(ReferencePipeline.java:175)atjava.util.Iterator.forEachRemaining(Iterator.java:116)atjava.util.Spliterators1.accept(ReferencePipeline.java:175) at java.util.Iterator.forEachRemaining(Iterator.java:116) at java.util.SpliteratorsIteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOpsForEachOp.evaluateSequential(ForEachOps.java:151)atjava.util.stream.ForEachOpsForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOpsForEachOpOfRef.evaluateSequential(ForEachOps.java:174)atjava.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)atjava.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)atorg.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorOfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.lambda$executeRecursively3(HierarchicalTestExecutor.java:120)atorg.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)atorg.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor3(HierarchicalTestExecutor.java:120) at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.execute(HierarchicalTestExecutor.java:79)atorg.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.execute(HierarchicalTestExecutor.java:79) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.lambda$executeRecursively2(HierarchicalTestExecutor.java:120)atjava.util.stream.ForEachOps2(HierarchicalTestExecutor.java:120) at java.util.stream.ForEachOpsForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$21.accept(ReferencePipeline.java:175)atjava.util.Iterator.forEachRemaining(Iterator.java:116)atjava.util.Spliterators1.accept(ReferencePipeline.java:175) at java.util.Iterator.forEachRemaining(Iterator.java:116) at java.util.SpliteratorsIteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOpsForEachOp.evaluateSequential(ForEachOps.java:151)atjava.util.stream.ForEachOpsForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOpsForEachOpOfRef.evaluateSequential(ForEachOps.java:174)atjava.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)atjava.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)atorg.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorOfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.lambda$executeRecursively3(HierarchicalTestExecutor.java:120)atorg.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)atorg.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor3(HierarchicalTestExecutor.java:120) at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorNodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:55)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:43)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:170)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:154)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

今天在学习spring5中注解配置时出现的一个问题
No bean named ‘transactionManager’ available: No matching PlatformTransactionManager bean found for qualifier ‘transactionManager’ - neither qualifier match nor bean name match!
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager'

原因是在配置注解解析器的时候没有配置transaction-manager,spring底层默认查询的是transactionManager,由于楼主在配置bean的时候将org.springframework.jdbc.datasource.DataSourceTransactionManager 的 id修改为了txManager ,故查询不到,将配置代码修改成如下即可
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager'
或者将 org.springframework.jdbc.datasource.DataSourceTransactionManager
中的id修改为transactionManager也行,如下图
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager'
继续学习,共勉