使用多个jdbctemplate时spring transactionmanager上出现nosuchbeandefinitionexception异常

9rbhqvlz  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(303)

我把我的头发分开了 jdbcTemplate 进入一个 readerJdbcTemplate 和一个 writerJdbcTemplate ,因此前者可以直接对读取副本进行查询。
应用程序运行良好,只有一个 jdbcTemplate ,但自从把它们分开后,我现在在启动时得到了这个:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.transaction.TransactionManager' available\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:352)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:343)\n\tat org.springframework.transaction.interceptor.TransactionAspectSupport.determineTransactionManager(TransactionAspectSupport.java:482)\n\tat org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:336)\n\tat org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)\n\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)

我确实有 spring-tx 在我的pom里,所以 TransactionManager 应该是可用的。
这是我的数据库配置

@Configuration
@EnableTransactionManagement
@Slf4j
public class DbConfig {

  @Profile("!local")
  @Bean
  public DataSource writerDataSource() {
    // snip
    return new HikariDataSource();
  }

  @Profile("!local")
  @Bean
  public DataSource readerDataSource() {
    // snip
    return new HikariDataSource();
  }

  @Bean
  public JdbcTemplate writerJdbcTemplate(DataSource writerDataSource) {
    return new JdbcTemplate(writerDataSource);
  }

  @Bean
  public JdbcTemplate readerJdbcTemplate(DataSource readerDataSource) {
    return new JdbcTemplate(readerDataSource);
  }

}

为什么是 TransactionManager 现在我有2个 jdbcTemplate ? 为什么找不到呢?缺少配置?
谢谢

暂无答案!

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

相关问题