Cassandra — це розподілена система керування базами даних
з відкритим вихідним кодом, призначена для обробки великих обсягів даних на безлічі типових серверів. На додаток
Spring Boot передбачає автоконфігурацію для Cassandra та абстракції, що надаються через ресурс. Для зручного збирання
залежностей існує "стартер" spring-boot-starter-data-cassandra
.
Підключення до Cassandra
Можна впровадити автоконфігурований CassandraTemplate
або екземпляр CqlSession
з Cassandra
так само, як і будь-який інший бін Spring. Властивості spring.data.cassandra.*
можна використовувати
для налаштування з'єднання. Зазвичай вказується keyspace-name
та contact-points
, а також
ім'я локального центру даних, як показано в наступному прикладі:
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1:9042,cassandrahost2:9042
spring.data.cassandra.local-datacenter=datacenter1
spring:
data:
cassandra:
keyspace-name: "mykeyspace"
contact-points: "cassandrahost1:9042,cassandrahost2:9042"
local-datacenter: "datacenter1"
Якщо порт однаковий для всіх контактних точок, можна скористатися скороченням та вказати лише імена хостів, як показано в наступному прикладі:
spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=cassandrahost1,cassandrahost2
spring.data.cassandra.local-datacenter=datacenter1
spring:
data:
cassandra:
keyspace-name: "mykeyspace"
contact-points: "cassandrahost1,cassandrahost2"
local-datacenter: "datacenter1"
9042
.
Якщо потрібно налаштувати порт, використовуй spring.data.cassandra.port
.
Драйвер для Cassandra має власну конфігураційну інфраструктуру, яка завантажує application.conf
у
корінь classpath.
Spring Boot не здійснює пошук такого файлу за замовчуванням, але може завантажувати його за допомогою spring.data.cassandra.config
.
Якщо властивість одночасно присутня в spring.data.cassandra.*
і в конфігураційному файлі, значення
spring.data.cassandra.*
має найвищий рівень старшинства.
Для більш глибокого налаштування драйверів можна реєструвати довільну кількість бінів, що реалізують DriverConfigLoaderBuilderCustomizer
.
CqlSession
можна налаштувати за допомогою біну типу CqlSessionBuilderCustomizer
.
CqlSessionBuilder
для створення кількох
бінів CqlSession
, май на увазі, що засіб збирання змінюється, тому слід переконатись, що для кожної
сесії впроваджується нова копія.
У наступному лістингу коду показано, як впровадити бін Cassandra:
@Component
public class MyBean {
private final CassandraTemplate template;
public MyBean(CassandraTemplate template) {
this.template = template;
}
}
@Component
class MyBean(private val template: CassandraTemplate) {
}
Якщо ти додаси власний бін типу CassandraTemplate
, позначений анотацією @Bean
, він замінить
шаблон за замовчуванням.
Репозиторії Spring Data Cassandra
Spring Data містить засоби підтримки репозиторіїв для Cassandra. Наразі вони більш обмежені, ніж аналогічна підтримка
репозиторіїв для JPA, розглянута раніше, і вимагає анотування методів пошуку за допомогою анотації
@Query
.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ