日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Spring Boot Cassandra的第一步

發(fā)布時(shí)間:2023/12/3 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot Cassandra的第一步 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果您想通過(guò)Spring Boot開(kāi)始使用Cassandra NoSQL數(shù)據(jù)庫(kù),最好的資源可能是此處提供的Cassandra示例和Spring數(shù)據(jù)Cassandra文檔 。

在這里,我將采取一些繞過(guò)的方式,實(shí)際是在本地安裝Cassandra并對(duì)其進(jìn)行基本測(cè)試,我的目標(biāo)是在下一篇博客文章中將此示例開(kāi)發(fā)為更全面的示例。

設(shè)置本地Cassandra實(shí)例

您的工作量可能會(huì)有所不同,但是要在本地安裝Cassandra的最簡(jiǎn)單方法是使用Cassandra集群管理器(ccm)實(shí)用程序( 在此處提供) 。

ccm create test -v 2.2.5 -n 3 -s

或更傳統(tǒng)的方法可能只是從Apache站點(diǎn)下載它。 如果您一直沿用,最適合我的Cassandra版本是2.2.5。

通過(guò)以上兩種方法之一,使用ccm啟動(dòng)Cassandra:

ccm start test

或從Apache站點(diǎn)下載:

bin/cassandra -f

-f標(biāo)志將使進(jìn)程保持在前臺(tái),一旦完成樣本,以這種方式停止進(jìn)程將非常容易。

現(xiàn)在連接到此Cassandra實(shí)例:

bin/cqlsh

并創(chuàng)建一個(gè)示例Cassandra鍵空間:

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

使用Spring Boot Cassandra

遵循與Spring Boot相關(guān)的任何內(nèi)容,有一個(gè)啟動(dòng)程序可用于拉入Cassandra的所有相關(guān)依賴(lài)關(guān)系,在此處指定為gradle依賴(lài)關(guān)系:

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

這將拉入觸發(fā)Cassandra相關(guān)實(shí)例自動(dòng)配置的依賴(lài)關(guān)系-主要是Cassandra會(huì)話(huà) 。

對(duì)于示例,我定義了一個(gè)名為Hotel的實(shí)體,它通過(guò)以下方式定義:

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數(shù)據(jù)存儲(chǔ)庫(kù)來(lái)管理該實(shí)體:

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

需要相應(yīng)的cql表來(lái)保存此實(shí)體:

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

本質(zhì)上就是這樣,對(duì)Cassandra的Spring數(shù)據(jù)支持現(xiàn)在將管理該實(shí)體的所有CRUD操作,并且測(cè)試如下所示:

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回購(gòu)。 該示例還沒(méi)有太多,在下一篇博客文章中,我將對(duì)該示例進(jìn)行增強(qiáng),以說(shuō)明以下事實(shí):了解NoSQL系統(tǒng)中整個(gè)集群中數(shù)據(jù)的分布以及此處的像Hotel這樣的實(shí)體如何能夠非常重要。為有效的CRUD操作建模。

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

總結(jié)

以上是生活随笔為你收集整理的Spring Boot Cassandra的第一步的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。