将spring项目转换为spring boot时面临的问题

kg7wmglp  于 2021-07-22  发布在  Java
关注(0)|答案(0)|浏览(244)

我正在将现有的基于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项目中则不起作用。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题