我需要在docker容器中将Spring Boot应用程序与Cassandra DB连接,并且我需要在spring应用程序启动甚至Cassandra容器启动时创建密钥空间。我该如何实现?
答案 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一样