如何在Cassandra Docker映像的开始或Spring Boot应用程序的开始中创建密钥空间

时间:2020-06-02 22:59:43

标签: spring-boot docker cassandra

我需要在docker容器中将Spring Boot应用程序与Cassandra DB连接,并且我需要在spring应用程序启动甚至Cassandra容器启动时创建密钥空间。我该如何实现?

1 个答案:

答案 0 :(得分:1)

在spring-boot java配置中,您可以有一个执行此操作的bean。

@Configuration
@PropertySource("classpath:cassandra.properties")
public class DaoConfig {
     @Bean
     public CassandraSessionManager getCassandraSessionManager() {
         return new CassandraSessionManager();
     }
}

如果您使用的是datastax的cassandra Java驱动程序,则可以按如下所示创建密钥空间。

String query = "CREATE KEYSPACE mykeyspace WITH replication = 
{'class':'SimpleStrategy','replication_factor':1};";              
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Session session = cluster.connect();
session.execute(query);

更常见的用例是连接到现有的键空间,您可以像https://github.com/joychakravarty/JNotes/blob/jnotes_withSpring/src/main/java/com/jc/jnotes/dao/remote/cassandra/CassandraSessionManager.java一样