Как игнорировать конфигурацию по умолчанию spring-boot-cassandra для загрузки экземпляра соединения cassandra - PullRequest
0 голосов
/ 25 октября 2018

Я добавил зависимость стартера cassandra

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-cassandra</artifactId>
   <version>2.0.0.RELEASE</version>
</dependency>

, но конфигурация по умолчанию мне не подходит.

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'cassandraSession' 
defined in class path resource 
[org/springframework/boot/autoconfigure/data/cassandra/
CassandraDataAutoConfiguration.class]:
Invocation of init method failed; nested exception is 
com.datastax.driver.core.exceptions.NoHostAvailableException:
All host(s) tried for query failed (tried: localhost/0:0:0:0:0:0:0:1:9042 
(com.datastax.driver.core.exceptions.TransportException: 
[localhost/0:0:0:0:0:0:0:1:9042] Cannot connect), localhost/127.0.0.1:9042
(com.datastax.driver.core.exceptions.TransportException: 
[localhost/127.0.0.1:9042] Cannot connect))

Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: 
All host(s) tried for query failed (tried: localhost/0:0:0:0:0:0:0:1:9042 
(com.datastax.driver.core.exceptions.TransportException: 
[localhost/0:0:0:0:0:0:0:1:9042] 
Cannot connect), localhost/127.0.0.1:9042 
(com.datastax.driver.core.exceptions.TransportException: 
[localhost/127.0.0.1:9042] Cannot connect))

Я надеюсь, что приложение Spring не загружает экземпляр соединения cassandra (как cassandraSession), когда я не настроил ' spring.data.cassandra. *'

Что можно сделать?

Ответы [ 2 ]

0 голосов
/ 11 марта 2019
You need to exclude CassandraDataAutoConfiguration to disable spring boot cassandra auto configuration e.g.

@SpringBootApplication
@EnableAutoConfiguration(exclude = { CassandraDataAutoConfiguration.class })
public class Application {
}

Then define your own cassandra configuration e.g.

@Configuration
@EnableReactiveCassandraRepositories
public class CassandraConfig extends AbstractReactiveCassandraConfiguration {
}

Дайте мне знать, если он работает нормально!

0 голосов
/ 18 декабря 2018

Закончено определение моего собственного кластерного компонента

@Configuration
@EnableReactiveCassandraRepositories
public class CassandraConfig extends AbstractReactiveCassandraConfiguration {

    // read contact points from config
    @Value("${spring.data.cassandra.contact-points}")
    private String contactPoints;

    @Override
    public CassandraClusterFactoryBean cluster() {
        CassandraClusterFactoryBean bean = super.cluster();
        bean.setContactPoints(contactPoints);
        return bean;
    }

https://github.com/spring-projects/spring-data-cassandra/blob/f3115017d4a04e105d4046f6fd716ac308ecd7aa/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractClusterConfiguration.java#L88

...