如果您想通过Spring Boot开始使用Cassandra NoSQL数据库,最好的资源可能是此处提供的Cassandra示例和Spring数据Cassandra文档 。

在这里,我将采取一些绕过的方式,实际是在本地安装Cassandra并对其进行基本测试,我的目标是在下一篇博客文章中将此示例开发为更全面的示例。

设置本地Cassandra实例

您的工作量可能会有所不同,但是要在本地安装Cassandra的最简单方法是使用Cassandra集群管理器(ccm)实用程序( 在此处提供) 。

ccm create test -v 2.2.5 -n 3 -s

或更传统的方法可能只是从Apache站点下载它。 如果您一直沿用,最适合我的Cassandra版本是2.2.5。

通过以上两种方法之一,使用ccm启动Cassandra:

ccm start test

或从Apache站点下载:

bin/cassandra -f

-f标志将使进程保持在前台,一旦完成样本,以这种方式停止进程将非常容易。

现在连接到此Cassandra实例:

bin/cqlsh

并创建一个示例Cassandra键空间:

CREATE KEYSPACE IF NOT EXISTS sample WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};

使用Spring Boot Cassandra

遵循与Spring Boot相关的任何内容,有一个启动程序可用于拉入Cassandra的所有相关依赖关系,在此处指定为gradle依赖关系:

compile('org.springframework.boot:spring-boot-starter-data-cassandra')

这将拉入触发Cassandra相关实例自动配置的依赖关系-主要是Cassandra会话 。

对于示例,我定义了一个名为Hotel的实体,它通过以下方式定义:

package cass.domain;import org.springframework.data.cassandra.mapping.PrimaryKey;
import org.springframework.data.cassandra.mapping.Table;import java.io.Serializable;
import java.util.UUID;@Table("hotels")
public class Hotel implements Serializable {private static final long serialVersionUID = 1L;@PrimaryKeyprivate UUID id;private String name;private String address;private String zip;private Integer version;public Hotel() {}public Hotel(String name) {this.name = name;}public UUID getId() {return id;}public String getName() {return this.name;}public String getAddress() {return this.address;}public String getZip() {return this.zip;}public void setId(UUID id) {this.id = id;}public void setName(String name) {this.name = name;}public void setAddress(String address) {this.address = address;}public void setZip(String zip) {this.zip = zip;}public Integer getVersion() {return version;}public void setVersion(Integer version) {this.version = version;}}

和Spring数据存储库来管理该实体:

import cass.domain.Hotel;
import org.springframework.data.repository.CrudRepository;import java.util.UUID;public interface HotelRepository extends CrudRepository<Hotel, UUID>{}

需要相应的cql表来保存此实体:

CREATE TABLE IF NOT EXISTS  sample.hotels (id UUID,name varchar,address varchar,zip varchar,version int,primary key((id))
);

本质上就是这样,对Cassandra的Spring数据支持现在将管理该实体的所有CRUD操作,并且测试如下所示:

import cass.domain.Hotel;
import cass.repository.HotelRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.UUID;import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SampleCassandraApplication.class)
public class SampleCassandraApplicationTest {@Autowiredprivate HotelRepository hotelRepository;@Testpublic void repositoryCrudOperations() {Hotel sample = sampleHotel();this.hotelRepository.save(sample);Hotel savedHotel = this.hotelRepository.findOne(sample.getId());assertThat(savedHotel.getName(), equalTo("Sample Hotel"));this.hotelRepository.delete(savedHotel);}private Hotel sampleHotel() {Hotel hotel = new Hotel();hotel.setId(UUID.randomUUID());hotel.setName("Sample Hotel");hotel.setAddress("Sample Address");hotel.setZip("8764");return hotel;}}

这是此示例的github回购。 该示例还没有太多,在下一篇博客文章中,我将对该示例进行增强,以说明以下事实:了解NoSQL系统中整个集群中数据的分布以及此处的像Hotel这样的实体如何能够非常重要。为有效的CRUD操作建模。

翻译自: https://www.javacodegeeks.com/2016/04/first-steps-spring-boot-cassandra.html

Spring Boot Cassandra的第一步相关推荐

  1. cassandra_Spring Boot Cassandra的第一步

    cassandra 如果您想通过Spring Boot开始使用Cassandra NoSQL数据库,最好的资源可能是此处提供的Cassandra示例以及Spring数据Cassandra文档 . 通过 ...

  2. 《深入实践Spring Boot》一第一部分 Part 1基础应用开发

    ####本节书摘来自华章出版社<深入实践Spring Boot>一书中的第1章,第1.1节,作者陈韶健,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一部分 ...

  3. 从0到1搭建一个Spring Boot项目【第一个接口】

    直接上代码 第一个类 package com.study;import org.springframework.boot.SpringApplication; import org.springfra ...

  4. spring boot整合lua 三步曲

    1.编写.lua文件 2.实例一个脚本执行器 3.使用 注意 redis 命令和lua只能同时操作落在相同server上的key,否者会抛出key不在slot上的异常.所以在对hash.list.se ...

  5. 一步一步学Spring Boot(一)

    开心一笑 老板说:"年轻人,如果你想在这里做事,有一件事情你必须要学会,那就是我们这个公司里要求非常干净,你进来时在鞋垫上擦脚了吗?" 年轻人:"哦,擦了,先生.&quo ...

  6. Spring Boot 2.x基础教程:快速入门

    点击蓝色"程序猿DD"关注我哟 来源:http://t./ <Star最多的Spring Boot教程继续更新了> 牛皮吹过了! Git仓库和博客专题页也改版完成! 是 ...

  7. java+caching+system_浅谈Spring boot cache使用和原理

    缓存要解决的问题:一个程序的瓶颈在于数据库,我们也知道内存的速度是大大快于硬盘的速度的.当我们需要重复地获取相同的数据的时候,我们一次又一次的请求数据库或者远程服务,导致大量的时间耗费在数据库查询或者 ...

  8. Spring Boot【快速入门】

    Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for building all Sp ...

  9. 最佳实践|Spring Boot 应用如何快速接入 Prometheus 监控

    简介:SpringBoot 微服务的开发.发布与部署只占其生命周期的一小部分,应用和系统运维才是重中之重.而运维过程中,监控工作更是占据重要位置.那么,为了对系统的状态进行持续地观测,面向Spring ...

最新文章

  1. 比拼 Kafka , 大数据分析新秀 Pulsar 到底好在哪
  2. 两个摄像头是如何将照片拼接在一起的
  3. 【技巧总结】Penetration Test Engineer[2]-Information gathering
  4. ps作业素材和成品_没有用过PS的画框工具,你还敢说你是设计大佬?
  5. 【渝粤教育】广东开放大学 知识产权法 形成性考核 (34)
  6. IOS_月薪10k以上知识大总结
  7. 2018.3.30 边框应用与导航栏设置
  8. 2016年度 JavaScript 展望(下)
  9. android surfaceview 技术,Android中SurfaceView的理解和使用
  10. mt4双线macd_【名师讲堂第三季】第六期:基于MACD指标的买卖策略精讲
  11. 面向java开发者的函数式编程_函数式编程让你忘记设计模式
  12. dubbo通信协议之对比
  13. 开涛spring3(5.15.2) - Spring表达式语言 之 5.1 概述 5.2 SpEL基础
  14. dynamic image
  15. Java web后台插入数据库中文乱码问题解决
  16. Windows可以往外ping,外部却ping不通本机
  17. 如何让你的Python程序支持多语言
  18. Python安装和环境配置
  19. RxAndroid结合Retrofit,看看谁才是最佳拍档!
  20. 34套Java项目教程+源码包含Java swing项目 Java web项目 Java控制台项目(视频教程+源码)

热门文章

  1. freemarker中遇到null报错的处理方法
  2. sh(Spring+Spring mvc+hibernate)——BaseDao.java
  3. JS中闭包的应用自定义JS模块
  4. 链接(了解)---Linux
  5. 命令点无效怎么处理_CAD执行修改命令,你试过重复选择对象吗?
  6. super 和 this 关键字的比较+调用构造器(this)+动态绑定
  7. java获取ram_Java:ChronicleMap第2部分,超级RAM映射
  8. 并发查询parallel_惯用并发:flatMap()与parallel()– RxJava常见问题解答
  9. 你为什么要关心equals和hashcode
  10. 愚弄dnn_不要被泛型和向后兼容性所愚弄。 使用泛型类型