日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

使用Apache Cassandra设置SpringData项目

發(fā)布時間:2023/12/3 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Apache Cassandra设置SpringData项目 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在這篇文章中,我們將使用Gradle和spring boot來創(chuàng)建一個集成spring-mvc和Apache Cassandra數(shù)據(jù)庫的項目。

首先,我們將從Gradle配置開始

group 'com.gkatzioura' version '1.0-SNAPSHOT'apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'spring-boot'buildscript {repositories {mavenCentral()}dependencies {classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.5.RELEASE")} }jar {baseName = 'gs-serving-web-content'version = '0.1.0' }repositories {mavenCentral() }sourceCompatibility = 1.8repositories {mavenCentral() }dependencies {compile "org.springframework.boot:spring-boot-starter-thymeleaf"compile "org.springframework.data:spring-data-cassandra:1.2.2.RELEASE"compile 'org.slf4j:slf4j-api:1.6.6'compile 'ch.qos.logback:logback-classic:1.0.13'testCompile "junit:junit" }task wrapper(type: Wrapper) {gradleVersion = '2.3' }

我們將在我們的Cassandra數(shù)據(jù)庫中創(chuàng)建鍵空間和表:

CREATE KEYSPACE IF NOT EXISTS example WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;CREATE TABLE IF NOT EXISTS example.greetings (user text,id timeuuid,greet text,creation_date timestamp,PRIMARY KEY (user, id) ) WITH CLUSTERING ORDER BY (id DESC);

我們可以使用cqlsh運行包含cql語句的文件

cqlsh -f database_creation.cql

Cassandra連接信息將位于META-INF / cassandra.properties中

cassandra.contactpoints=localhost cassandra.port=9042 cassandra.keyspace=example

現(xiàn)在,我們可以使用spring注釋繼續(xù)進行Cassandra配置。

package com.gkatzioura.spring.config;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.data.cassandra.config.CassandraClusterFactoryBean; import org.springframework.data.cassandra.config.CassandraSessionFactoryBean; import org.springframework.data.cassandra.config.SchemaAction; import org.springframework.data.cassandra.convert.CassandraConverter; import org.springframework.data.cassandra.convert.MappingCassandraConverter; import org.springframework.data.cassandra.core.CassandraOperations; import org.springframework.data.cassandra.core.CassandraTemplate; import org.springframework.data.cassandra.mapping.BasicCassandraMappingContext; import org.springframework.data.cassandra.mapping.CassandraMappingContext; import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories;@Configuration @PropertySource(value = {"classpath:META-INF/cassandra.properties"}) @EnableCassandraRepositories(basePackages = {"com.gkatzioura.spring"}) public class CassandraConfig {@Autowiredprivate Environment environment;private static final Logger LOGGER = LoggerFactory.getLogger(CassandraConfig.class);@Beanpublic CassandraClusterFactoryBean cluster() {CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();cluster.setContactPoints(environment.getProperty("cassandra.contactpoints"));cluster.setPort(Integer.parseInt(environment.getProperty("cassandra.port")));return cluster;}@Beanpublic CassandraMappingContext mappingContext() {return new BasicCassandraMappingContext();}@Beanpublic CassandraConverter converter() {return new MappingCassandraConverter(mappingContext());}@Beanpublic CassandraSessionFactoryBean session() throws Exception {CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();session.setCluster(cluster().getObject());session.setKeyspaceName(environment.getProperty("cassandra.keyspace"));session.setConverter(converter());session.setSchemaAction(SchemaAction.NONE);return session;}@Beanpublic CassandraOperations cassandraTemplate() throws Exception {return new CassandraTemplate(session().getObject());}}

然后,我們創(chuàng)建Greeting實體。

package com.gkatzioura.spring.entity;import com.datastax.driver.core.utils.UUIDs; import org.springframework.cassandra.core.PrimaryKeyType; import org.springframework.data.cassandra.mapping.Column; import org.springframework.data.cassandra.mapping.PrimaryKeyColumn; import org.springframework.data.cassandra.mapping.Table;import java.util.Date; import java.util.UUID;@Table(value = "greetings") public class Greeting {@PrimaryKeyColumn(name = "id",ordinal = 1,type = PrimaryKeyType.CLUSTERED)private UUID id = UUIDs.timeBased();@PrimaryKeyColumn(name="user",ordinal = 0,type = PrimaryKeyType.PARTITIONED)private String user;@Column(value = "greet")private String greet;@Column(value = "creation_date")private Date creationDate;public UUID getId() {return id;}public void setId(UUID id) {this.id = id;}public Date getCreationDate() {return creationDate;}public void setCreationDate(Date creationDate) {this.creationDate = creationDate;}public String getUser() {return user;}public void setUser(String user) {this.user = user;}public String getGreet() {return greet;}public void setGreet(String greet) {this.greet = greet;} }

為了訪問數(shù)據(jù),應該創(chuàng)建一個存儲庫。 在我們的案例中,我們將通過添加一些查詢來向存儲庫添加一些額外的功能。

package com.gkatzioura.spring.repository;import com.gkatzioura.spring.entity.Greeting; import org.springframework.data.cassandra.repository.CassandraRepository; import org.springframework.data.cassandra.repository.Query; import org.springframework.data.repository.NoRepositoryBean;import java.util.UUID;public interface GreetRepository extends CassandraRepository<Greeting> {@Query("SELECT*FROM greetings WHERE user=?0 LIMIT ?1")Iterable<Greeting> findByUser(String user,Integer limit);@Query("SELECT*FROM greetings WHERE user=?0 AND id<?1 LIMIT ?2")Iterable<Greeting> findByUserFrom(String user,UUID from,Integer limit);}

現(xiàn)在,我們可以實現(xiàn)控制器,以便通過http訪問數(shù)據(jù)。 通過郵寄,我們可以保存“問候語”實體。 通過獲取,我們可以獲取收到的所有問候。 通過指定用戶,我們可以使用Cassandra查詢來獲取特定用戶的問候。

package com.gkatzioura.spring.controller;import com.gkatzioura.spring.entity.Greeting; import com.gkatzioura.spring.repository.GreetRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;import java.util.ArrayList; import java.util.Date; import java.util.List;@RestController public class GreetingController {@Autowiredprivate GreetRepository greetRepository;@RequestMapping(value = "/greeting",method = RequestMethod.GET)@ResponseBodypublic List<Greeting> greeting() {List<Greeting> greetings = new ArrayList<>();greetRepository.findAll().forEach(e->greetings.add(e));return greetings;}@RequestMapping(value = "/greeting/{user}/",method = RequestMethod.GET)@ResponseBodypublic List<Greeting> greetingUserLimit(@PathVariable String user,Integer limit) {List<Greeting> greetings = new ArrayList<>();greetRepository.findByUser(user,limit).forEach(e -> greetings.add(e));return greetings;}@RequestMapping(value = "/greeting",method = RequestMethod.POST)@ResponseBodypublic String saveGreeting(@RequestBody Greeting greeting) {greeting.setCreationDate(new Date());greetRepository.save(greeting);return "OK";}}

最后但并非最不重要的是我們的Application類

package com.gkatzioura.spring;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}

為了運行,只需運行:

gradle bootRun

翻譯自: https://www.javacodegeeks.com/2015/08/set-up-a-springdata-project-using-apache-cassandra.html

總結

以上是生活随笔為你收集整理的使用Apache Cassandra设置SpringData项目的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久久无码人妻精品一区 | 国产无人区码熟妇毛片多 | 成年人免费看黄色 | 鲁一鲁av| 妞干网精品 | 黄色污污视频软件 | 亚洲熟女一区二区三区 | 夜夜躁日日躁狠狠久久av | 婷婷在线播放 | 99视频只有精品 | 亚洲国产精品成人无码区 | 中文字幕88 | 国产精品色视频 | 一本久久综合亚洲鲁鲁五月天 | 这里只有久久精品 | 俺去俺来也在线www色官网 | 激情999 | 免费色av | 国产字幕在线观看 | 天天躁日日躁狠狠躁免费麻豆 | 免费无码一区二区三区 | 三上悠亚ed2k| 丰满人妻一区二区三区大胸 | 欧美性猛交xxxx乱大交蜜桃 | 自拍超碰 | 免费毛片看片 | 激情成人综合 | 天堂在线视频 | 久久只有精品 | 天天摸天天射 | 人操人爽| 久久激情视频 | 翔田千里在线播放 | 痴汉电车在线观看 | 我要看免费的毛片 | 成人做受视频试看60秒 | 日日夜夜艹 | 麻豆影视在线 | 欧美gv在线观看 | 五月天开心网 | 天堂毛片| 麻豆中文字幕 | 亚洲一区二区视频在线 | 成人午夜福利视频 | 日韩在线观看中文字幕 | 欧美午夜精品一区二区 | 办公室大战高跟丝袜秘书经理ol | 男男一级淫片免费播放 | 奇米影视在线观看 | 久久久久久久久久久久久女国产乱 | 精品久久久久久久久久久久久久久久久久 | 超碰在线免费公开 | 手机天堂网| 无码日韩精品视频 | 亚洲精品66 | 日本老师巨大bbw丰满 | 99国产免费 | 亚洲2022国产成人精品无码区 | 夜夜躁日日躁狠狠久久av | 欧美视频一区在线 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 欧美成欧美va| 做爰视频毛片视频 | 91免费网站 | 日本一本久久 | 日韩欧美视频在线 | 国产精品一线二线 | 一级福利片 | 国产高清视频一区二区 | 亚洲无吗一区二区三区 | 免费黄色入口 | 国产精品爽爽 | 一区二区三区四区五区六区 | 波多野结衣潜藏淫欲 | 日本视频www色 | 伊人草草 | 亚洲精品一区二区三区中文字幕 | 黄色在线免费网站 | 欧美不卡三区 | 亚洲国产视频一区二区三区 | 亚洲国产精品区 | 伊人日日夜夜 | 欧美乱论 | 精品亚洲一区二区 | 淫语对白 | 调教撅屁股啪调教打臀缝av | 97超碰人人网 | 777理伦三级做爰 | mm131丰满少妇人体欣赏图 | 久操成人 | 潮喷失禁大喷水aⅴ无码 | 男男成人高潮片免费网站 | 国自产拍偷拍精品啪啪一区二区 | 日韩欧美一区在线 | 中文字幕亚洲精品在线观看 | 午夜免费福利小电影 | 日本特级黄色 | 午夜国产| 日韩视频在线观看 |