Skip to content

SpringBoot集成Cassandra

1、添加依赖

在你的pom.xml或者build.gradle文件中添加Cassandra和Spring Data Cassandra的依赖。对于Maven,你的配置可能如下所示:

xml
<dependencies>
    <!-- Spring Boot Starter for Cassandra -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-cassandra-reactive</artifactId>
    </dependency>
    <!-- Cassandra driver -->
    <dependency>
        <groupId>com.datastax.oss</groupId>
        <artifactId>java-driver-core</artifactId>
    </dependency>
</dependencies>

对于Gradle,你可能需要添加以下依赖:

groovy
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-cassandra-reactive'
    implementation 'com.datastax.oss:java-driver-core'
}

2、配置Cassandra

application.ymlapplication.properties中配置Cassandra连接信息。例如:

yaml
spring:
  data:
    cassandra:
      cluster-name: "Test Cluster"
      contact-points: localhost
      port: 9042
      keyspace-name: mykeyspace
      local-data-center: datacenter1

3、创建实体类

使用@CassandraMappingContext@CassandraRepository注解来定义你的实体类和数据访问接口。

例如,定义一个用户实体:

java
@Document
public class User {
    @PrimaryKeyColumn(name = "id", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
    private UUID id;

    private String name;

    // getters and setters
}

然后定义一个数据访问接口:

java
@Repository
public interface UserRepository extends ReactiveCassandraRepository<User, UUID> {
}

4、使用Cassandra

现在你可以在服务中注入UserRepository并使用它来进行数据库操作。

java
@Service
public class UserService {
    private final UserRepository userRepository;

    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public Mono<Void> saveUser(User user) {
        return userRepository.save(user).then();
    }
}

需要注意的是,Cassandra是一个分布式NoSQL数据库,其设计原则和关系型数据库有很大不同,所以在设计数据模型时需要考虑到这一点。