Skip to content

Instantly share code, notes, and snippets.

@Gueka
Created August 1, 2019 17:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Gueka/bb412329b0624caff5730f12b37971d8 to your computer and use it in GitHub Desktop.
Save Gueka/bb412329b0624caff5730f12b37971d8 to your computer and use it in GitHub Desktop.
Used to configure Cassandra database with spring boot
package net.gueka.user.configuration;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.cassandra.config.AbstractCassandraConfiguration;
import org.springframework.data.cassandra.config.CassandraClusterFactoryBean;
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
import org.springframework.data.cassandra.core.mapping.SimpleUserTypeResolver;
import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories;
@Configuration
@EnableCassandraRepositories(basePackages = "net.gueka.user.repository")
public class CassandraConfig extends AbstractCassandraConfiguration {
@Value("${cassandra.keyspace}")
public String keyspace;
@Value("${cassandra.contactpoints}")
private String contactPoints;
@Value("${cassandra.port}")
private Integer port;
@Value("${cassandra.metrics.enabled:false}")
private boolean metricsEnabled;
@Override
protected String getKeyspaceName() {
return keyspace;
}
@Bean
public CassandraClusterFactoryBean cluster() {
CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
cluster.setContactPoints(contactPoints);
cluster.setPort(port);
cluster.setMetricsEnabled(metricsEnabled);
return cluster;
}
@Bean
public CassandraMappingContext cassandraMapping() throws ClassNotFoundException {
CassandraMappingContext mappingContext = new CassandraMappingContext();
mappingContext.setUserTypeResolver(new SimpleUserTypeResolver(cluster().getObject(), keyspace));
return mappingContext;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment