javascript
Spring Boot Cassandra的第一步
如果您想通過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的第一步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 角色的读音 角色的读音是什么
- 下一篇: guice spring_Spring