weixin_40047026 2020-08-17 11:15 采纳率: 0%
浏览 1764

seata启动报错:Auto proxy of DataSource can't be enabled as you've created a DataSourceProxy bean.Please consider removing DataSourceProxy bean or disabling auto proxy of DataSource.

加了
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
为什么启动还是报错:
Caused by: io.seata.common.exception.ShouldNeverHappenException: Auto proxy of DataSource can't be enabled as you've created a DataSourceProxy bean.Please consider removing DataSourceProxy bean or disabling auto proxy of DataSource

  • 写回答

1条回答 默认 最新

  • thomas.he 2020-08-17 11:28
    关注
    @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
    

    设置之后再注册下再写加载Bean

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druidDataSource() {
        DruidDataSource druidDataSource = new DruidDataSource();
        return druidDataSource;
    }
    
    @Primary
    @Bean("dataSource")
    public DataSourceProxy dataSource(DataSource druidDataSource) {
        return new DataSourceProxy(druidDataSource);
    }
    
    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSourceProxy dataSourceProxy) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSourceProxy);
        sqlSessionFactoryBean.setTypeAliasesPackage("com.bitter.storage.domain");
    
        MybatisConfiguration configuration = new MybatisConfiguration();
        configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
        configuration.setJdbcTypeForNull(JdbcType.NULL);
        sqlSessionFactoryBean.setConfiguration(configuration);
    
        sqlSessionFactoryBean.setTransactionFactory(new SpringManagedTransactionFactory());
    
        return sqlSessionFactoryBean.getObject();
    }
    
    评论

报告相同问题?