摘要:使用技術(shù)提供了額外的項(xiàng)目,幫助你訪問(wèn)各種技術(shù),包括,,,,,,,和。我們還提供了一個(gè),以便與具有支持的其他存儲(chǔ)保持一致。有關(guān)的詳細(xì)信息,請(qǐng)參閱參考文檔。
30. 使用NoSQL技術(shù)
Spring Data提供了額外的項(xiàng)目,幫助你訪問(wèn)各種NoSQL技術(shù),包括:MongoDB,Neo4J,Elasticsearch,Solr,Redis,Gemfire,Cassandra,Couchbase和LDAP。Spring Boot為Redis、MongoDB、Neo4j、Elasticsearch、Solr Cassandra、Couchbase和LDAP提供了自動(dòng)配置,你可以使用其他項(xiàng)目,但是你必須自己配置它們,請(qǐng)參閱projects.spring.io/spring-data的適當(dāng)參考文檔。
30.1 RedisRedis是一個(gè)緩存、消息代理和功能豐富的鍵值存儲(chǔ),Spring Boot提供了Lettuce和Jedis客戶端庫(kù)的基本自動(dòng)配置,以及Spring Data Redis提供的在它們之上的抽象。
有一個(gè)spring-boot-starter-data-redis “Starter”,可以方便地收集依賴項(xiàng),默認(rèn)情況下,它使用Lettuce,該starter同時(shí)處理傳統(tǒng)應(yīng)用程序和reactive應(yīng)用程序。
我們還提供了一個(gè)spring-boot-starter-data-redis-reactive “Starter”,以便與具有reactive支持的其他存儲(chǔ)保持一致。30.1.1 連接到Redis
可以像注入任何其他Spring Bean一樣注入自動(dòng)配置的RedisConnectionFactory、StringRedisTemplate或vanilla RedisTemplate實(shí)例,默認(rèn)情況下,該實(shí)例試圖連接到localhost:6379上的Redis服務(wù)器,下面的清單顯示了這樣一個(gè)bean的示例:
@Component public class MyBean { private StringRedisTemplate template; @Autowired public MyBean(StringRedisTemplate template) { this.template = template; } // ... }
你還可以注冊(cè)任意數(shù)量的bean,這些bean實(shí)現(xiàn)LettuceClientConfigurationBuilderCustomizer用于更高級(jí)的定制,如果你使用Jedis,也可以使用JedisClientConfigurationBuilderCustomizer。
如果你添加了任何自動(dòng)配置類型的自己的@Bean,它替換默認(rèn)值(在RedisTemplate的情況下除外,當(dāng)排除值是基于bean名稱時(shí),則替換為RedisTemplate,而不是它的類型),默認(rèn)情況下,如果commons-pool2在類路徑上,就會(huì)得到一個(gè)連接池工廠。
30.6 ElasticsearchElasticsearch是一個(gè)開(kāi)源、分布式、實(shí)時(shí)搜索和分析引擎,Spring Boot為Elasticsearch提供了基本的自動(dòng)配置,上面的抽象由Spring Data Elasticsearch提供,有一個(gè)spring-boot-starter-data-elasticsearch “Starter”可以方便地收集依賴項(xiàng),Spring Boot也支持Jest。
30.6.1 使用Jest連接到Elasticsearch如果類路徑上有Jest,則可以注入一個(gè)自動(dòng)配置的JestClient,該客戶端默認(rèn)以localhost:9200為目標(biāo),你可以進(jìn)一步調(diào)整客戶端的配置方式,如下面的示例所示:
spring.elasticsearch.jest.uris=http://search.example.com:9200 spring.elasticsearch.jest.read-timeout=10000 spring.elasticsearch.jest.username=user spring.elasticsearch.jest.password=secret
你還可以注冊(cè)任意數(shù)量的bean,這些bean實(shí)現(xiàn)HttpClientConfigBuilderCustomizer,用于更高級(jí)的定制,下面的示例調(diào)優(yōu)其他HTTP設(shè)置:
static class HttpSettingsCustomizer implements HttpClientConfigBuilderCustomizer { @Override public void customize(HttpClientConfig.Builder builder) { builder.maxTotalConnection(100).defaultMaxTotalConnectionPerRoute(5); } }
要完全控制注冊(cè),定義一個(gè)JestClient bean。
30.6.2 使用Spring Data連接到Elasticsearch要連接到Elasticsearch,必須提供一個(gè)或多個(gè)集群節(jié)點(diǎn)的地址,可以通過(guò)設(shè)置spring.data.elasticsearch.cluster-nodes屬性來(lái)指定一個(gè)逗號(hào)分隔的host:port列表的地址。有了這個(gè)配置,一個(gè)ElasticsearchTemplate或TransportClient就可以像其他任何Spring bean一樣被注入,如下面的示例所示:
spring.data.elasticsearch.cluster-nodes=localhost:9300
@Component public class MyBean { private final ElasticsearchTemplate template; public MyBean(ElasticsearchTemplate template) { this.template = template; } // ... }
如果你添加自己的ElasticsearchTemplate或TransportClient @Bean,它會(huì)替換默認(rèn)。
30.6.3 Spring Data Elasticsearch存儲(chǔ)庫(kù)Spring Data包括對(duì)Elasticsearch的存儲(chǔ)庫(kù)支持,與前面討論的JPA存儲(chǔ)庫(kù)一樣,基本原則是根據(jù)方法名稱為你自動(dòng)構(gòu)造查詢。
事實(shí)上,Spring Data JPA和Spring Data Elasticsearch共享相同的公共基礎(chǔ)設(shè)施,你可以以前面的JPA示例為例,假設(shè)City現(xiàn)在是Elasticsearch @Document類,而不是JPA @Entity,它的工作方式是相同的。
有關(guān)Spring Data Elasticsearch的詳細(xì)信息,請(qǐng)參閱參考文檔。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77371.html
摘要:參考指南使你可以輕松地創(chuàng)建可運(yùn)行的獨(dú)立的生產(chǎn)級(jí)的基于的應(yīng)用程序,我們對(duì)平臺(tái)和第三方庫(kù)有自己的看法,這樣你就可以以最低限度工作開(kāi)始了,大多數(shù)應(yīng)用程序都需要很少的配置。文檔本節(jié)簡(jiǎn)要概述了參考文檔,它充當(dāng)文檔其余部分的映射。 Spring Boot 參考指南 Spring Boot使你可以輕松地創(chuàng)建可運(yùn)行的獨(dú)立的、生產(chǎn)級(jí)的基于Spring的應(yīng)用程序,我們對(duì)Spring平臺(tái)和第三方庫(kù)有自己的看...
摘要:結(jié)合我自己的經(jīng)驗(yàn),我整理了一份全棧工程師進(jìn)階路線圖,給大家參考。乾坤大挪移第一層第一層心法,主要都是基本語(yǔ)法,程序設(shè)計(jì)入門,悟性高者十天半月可成,差一點(diǎn)的到個(gè)月也說(shuō)不準(zhǔn)。 技術(shù)更新日新月異,對(duì)于初入職場(chǎng)的同學(xué)來(lái)說(shuō),經(jīng)常會(huì)困惑該往那個(gè)方向發(fā)展,這一點(diǎn)松哥是深有體會(huì)的。 我剛開(kāi)始學(xué)習(xí) Java 那會(huì),最大的問(wèn)題就是不知道該學(xué)什么,以及學(xué)習(xí)的順序,我相信這也是很多初學(xué)者經(jīng)常面臨的問(wèn)題。?我...
摘要:指南無(wú)論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率使用團(tuán)隊(duì)推薦的最新項(xiàng)目版本和技術(shù)。使用進(jìn)行消息傳遞了解如何將用作消息代理。安全架構(gòu)的主題指南,這些位如何組合以及它們?nèi)绾闻c交互。使用的主題指南以及如何為應(yīng)用程序創(chuàng)建容器鏡像。 Spring 指南 無(wú)論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率 — 使用Spring團(tuán)隊(duì)推薦的最新Spring項(xiàng)目版本和技術(shù)。 入門指南 這些...
摘要:作為微服務(wù)的基礎(chǔ)設(shè)施之一,背靠強(qiáng)大的生態(tài)社區(qū),支撐技術(shù)體系。微服務(wù)實(shí)踐為系列講座,專題直播節(jié),時(shí)長(zhǎng)高達(dá)小時(shí),包括目前最流行技術(shù),深入源碼分析,授人以漁的方式,幫助初學(xué)者深入淺出地掌握,為高階從業(yè)人員拋磚引玉。 簡(jiǎn)介 目前業(yè)界最流行的微服務(wù)架構(gòu)正在或者已被各種規(guī)模的互聯(lián)網(wǎng)公司廣泛接受和認(rèn)可,業(yè)已成為互聯(lián)網(wǎng)開(kāi)發(fā)人員必備技術(shù)。無(wú)論是互聯(lián)網(wǎng)、云計(jì)算還是大數(shù)據(jù),Java平臺(tái)已成為全棧的生態(tài)體系,...
閱讀 1760·2021-11-25 09:43
閱讀 1797·2021-11-24 10:41
閱讀 3115·2021-09-27 13:36
閱讀 821·2019-08-30 15:53
閱讀 3579·2019-08-30 15:44
閱讀 872·2019-08-30 14:03
閱讀 2583·2019-08-29 16:38
閱讀 1007·2019-08-29 13:23