Я использую пружинные данные реактивной Кассандры.Ниже приведен мой класс конфигурации.Я ожидаю, что при загрузке приложения весенней загрузки оно должно подключиться к Cassandra и создать пространство клавиш.Но мое приложение может подключиться к Cassandra, но оно не создает пространство клавиш.Я получаю следующее исключение при запуске.Пожалуйста, дайте мне знать, если я что-то упустил.
import com.datastax.driver.core.PlainTextAuthProvider;
import com.datastax.driver.core.policies.ConstantReconnectionPolicy;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.cassandra.config.AbstractReactiveCassandraConfiguration;
import org.springframework.data.cassandra.config.CassandraClusterFactoryBean;
import org.springframework.data.cassandra.config.SchemaAction;
import org.springframework.data.cassandra.core.cql.keyspace.CreateKeyspaceSpecification;
import org.springframework.data.cassandra.core.cql.keyspace.DropKeyspaceSpecification;
import org.springframework.data.cassandra.core.cql.keyspace.KeyspaceOption;
import org.springframework.data.cassandra.repository.config.EnableReactiveCassandraRepositories;
import java.util.Arrays;
import java.util.List;
@Configuration
@EnableReactiveCassandraRepositories
public class CassandraConfig extends AbstractReactiveCassandraConfiguration {
@Value("${spring.data.cassandra.contactpoints}") private String contactPoints;
@Value("${spring.data.cassandra.port}") private int port;
@Value("${spring.data.cassandra.keyspace-name}") private String keyspace;
@Value("${spring.data.cassandra.username}") private String userName;
@Value("${spring.data.cassandra.password}") private String password;
@Value("${cassandra.basepackages}") private String basePackages;
@Override protected String getKeyspaceName() {
return keyspace;
}
@Override protected String getContactPoints() {
return contactPoints;
}
@Override protected int getPort() {
return port;
}
@Override public SchemaAction getSchemaAction() {
return SchemaAction.CREATE_IF_NOT_EXISTS;
}
@Override public String[] getEntityBasePackages() {
return new String[] {
basePackages
};
}
@Override
public CassandraClusterFactoryBean cluster() {
PlainTextAuthProvider authProvider = new PlainTextAuthProvider(userName, password);
CassandraClusterFactoryBean cluster=new CassandraClusterFactoryBean();
cluster.setJmxReportingEnabled(false);
cluster.setContactPoints(contactPoints);
cluster.setPort(port);
cluster.setAuthProvider(authProvider);
cluster.setReconnectionPolicy(new ConstantReconnectionPolicy(1000));
return cluster;
}
@Override
protected List<CreateKeyspaceSpecification> getKeyspaceCreations() {
CreateKeyspaceSpecification specification = CreateKeyspaceSpecification.createKeyspace(keyspace)
.ifNotExists()
.with(KeyspaceOption.DURABLE_WRITES, true);
return Arrays.asList(specification);
}
@Override
protected List<DropKeyspaceSpecification> getKeyspaceDrops() {
return Arrays.asList(DropKeyspaceSpecification.dropKeyspace(keyspace));
}
}
Неудовлетворенная зависимость, выраженная через параметр конструктора 5;вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания компонента с именем «myRepository»: невозможно разрешить ссылку на компонент «реактивныйCassandraTemplate» при установке свойства компонента «реактивныйCassandraOperations»;вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем'activetiveCassandraTemplate ', определенным в com.company.domain.CassandraConfig: создание экземпляра компонента с помощью метода фабрики не выполнено;вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.data.cassandra.core.ReactiveCassandraTemplate]: метод фабрики'activetiveCassandraTemplate 'вызвал исключение;вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем responsetiveSessionFactory, определенным в com.company.domain.CassandraConfig: создание экземпляра бина с помощью метода фабрики не выполнено;вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.data.cassandra.ReactiveSessionFactory]: метод фабрики'activetiveSessionFactory 'вызвал исключение;вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем'activetiveSession ', определенным в com.company.domain.CassandraConfig: создание экземпляра компонента с помощью метода фабрики не выполнено;вложенное исключение - org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.data.cassandra.ReactiveSession]: метод фабрики'activetiveSession 'вызвал исключение;вложенное исключение: org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем 'session', определенным в com.company.domain.CassandraConfig: сбой вызова метода init;вложенное исключение: com.datastax.driver.core.exceptions.InvalidQueryException: пространство ключей 'mykeyspace' не существует