You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot连接Cassandra报错:无法解析cassandraTemplate Bean

问题:Spring Boot连接Cassandra启动报错无法找到cassandraTemplate bean

启动应用时出现如下错误:

Error creating bean with name 'abcItemsRepository' defined in com.myspace.mycompany.repository defined in @EnableCassandraRepositories declared on CassandraRepositoriesRegistrar.EnableCassandraRepositoriesConfiguration: Cannot resolve reference to bean 'cassandraTemplate' while setting bean property 'cassandraTemplate'

提供的配置与代码信息

实体类OboItems

@Table("abc_items")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OboItems {

  @Id
  @PrimaryKeyColumn(name = "item_id", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
  @Column(name = "item_id")
  private String itemId;

  @Column(name = "last_scheduled_time")
  private Date lastScheduledTime;

}

启动类MyApplication

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

}

Repository接口

public interface OboItemsRepository extends CassandraRepository<OboItems,String> {

}

配置文件application.properties

spring.data.cassandra.contact-points=<my-end-point>
spring.data.cassandra.port=9042
spring.data.cassandra.username=<username>
spring.data.cassandra.password=<password>
spring.data.cassandra.keyspace-name=<mykeyspace>
spring.data.cassandra.session.timeout=30000

解决方案

  • 确保依赖完整性
    检查项目构建文件(pom.xml或build.gradle)中是否包含Spring Data Cassandra的starter依赖,版本需与Spring Boot版本兼容:

    <!-- Maven依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-cassandra</artifactId>
    </dependency>
    
  • 正确配置包扫描
    若使用自定义Cassandra配置类,必须添加@Configuration和@EnableCassandraRepositories注解,并指定Repository所在包路径,同时手动配置必要的Cassandra参数及cassandraTemplate:

    @Configuration
    @EnableCassandraRepositories(basePackages = "com.myspace.mycompany.repository")
    public class CassandraConfig extends AbstractCassandraConfiguration {
        @Value("${spring.data.cassandra.contact-points}")
        private String contactPoints;
        @Value("${spring.data.cassandra.port}")
        private int port;
        @Value("${spring.data.cassandra.username}")
        private String username;
        @Value("${spring.data.cassandra.password}")
        private String password;
        @Value("${spring.data.cassandra.keyspace-name}")
        private String keyspaceName;
    
        @Override
        protected String getContactPoints() {
            return contactPoints;
        }
    
        @Override
        protected int getPort() {
            return port;
        }
    
        @Override
        protected String getKeyspaceName() {
            return keyspaceName;
        }
    
        @Override
        protected AuthProvider getAuthProvider() {
            return new PlainTextAuthProvider(username, password);
        }
    
        @Bean
        public CassandraTemplate cassandraTemplate(Session session) {
            return new CassandraTemplate(session);
        }
    }
    

    若不使用自定义配置,需保证启动类所在包包含Repository的子包,或在@SpringBootApplication中显式指定扫描包:

    @SpringBootApplication(scanBasePackages = "com.myspace.mycompany")
    public class MyApplication {
        // ...
    }
    
  • 验证配置文件有效性
    替换配置文件中的占位符(<my-end-point>、<username>等)为实际的Cassandra服务信息,确保服务正常运行,端口9042可访问,用户名密码、keyspace名称均正确。

  • 检查实体类注解
    确认实体类OboItems的@Table注解指定的表名abc_items与Cassandra中实际表名一致;@Id、@PrimaryKeyColumn的主键配置类型与数据库表结构匹配。

内容的提问来源于stack exchange,提问作者Omprakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 14:43:24