我正在将现有的基于springcamel的项目转换为springboot。我使用的是SpringBootVersion2.2.4,Gradle4.10和intellij版本2019.3.3。我对提供spring配置的外部jar有很多依赖性(例如事务管理器)。这些类作为参数传递给springapplication,并导入到主spring引导应用程序中。下面是外部库中的spring配置类(dbdataproviderformssql类具有用于数据源的bean)
@Configuration
@Import(DbDataProviderForMssql.class)
@EnableTransactionManagement(proxyTargetClass = true)
public class DbDataProviderWithTxnForMssql implements TransactionManagementConfigurer {
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return txManager();
}
@Bean
public XXTransactionManager txManager() {
XXTransactionManager xxTransactionManager = new XXTransactionManager();
return xxTransactionManager;
}
}
在启动spring启动应用程序时,我无法获取platformtransactionmanager的示例,并且在autowiredannotationbeanpostprocessor中获取invocationtargetexception
if (arguments != null) {
try {
ReflectionUtils.makeAccessible(method);
method.invoke(bean, arguments);
}
catch (InvocationTargetException ex){
throw ex.getTargetException();
}
}
在控制台中,我得到以下异常:
org.springframework.beans.factory.beancreationexception:创建名为“org.springframework.transaction.annotation.proxytransactionmanagementconfiguration”的bean时出错:自动关联依赖项的注入失败;嵌套的异常是java.lang.abstractmethoderror:com.xx..commonspringconfig.dbdataproviderwithtxnformssql$$enhancerbyspringcglib$$a486f4ae.annotationDrivenTransactionManager()lorg/springframework/transaction/transactionmanager;
在条件评估报告中,我得到的正/负匹配数低于txmanager
阳性匹配:
transactionautoconfiguration.transactiontemplateconfiguration匹配:
@conditionalonbean(类型:org.springframework.transaction.platformtransactionmanager;searchstratergy:all)从bean“txmanager”(onbeancondition)中找到一个主bean
阴性匹配:
datasourcetransactionmanagerautoconfiguration。datasourcetransactionmanagerconfiguration#transactionmanager:不匹配:
@conditionalonbean(类型:org.springframework.transaction.platformtransactionmanager;searchstratergy:all)找到类型为“org.springframework.transaction.platformtransactionmanager”“txmanager”(onbeancondition)的bean
你能告诉我为什么我没有得到platformtransactionmanager的示例,它应该返回txmanager。这些配置在spring项目中运行良好,而在springboot项目中则不起作用。
暂无答案!
目前还没有任何答案,快来回答吧!