SpringBoot中文參考指南(2.1.6)32.8、Couchbase

下一篇[未完待續]

SpringBoot中文參考指南(2.1.6)32.8、Couchbase/32.9、LDAP

<code>英文原文:https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-nosql.html/<code>
<code>GitHub:https://github.com/jijicai/Spring/tree/master/spring-boot/<code>


32.8、Couchbase

Couchbase 是一個開源、分佈式、多模型的面向 NoSQL 文檔的數據庫,為交互式應用程序優化。Spring Boot 提供Couchbase 的自動配置以及 Spring Data Couchbase 在其上提供的抽象。有 spring-boot-starter-data-couchbase 和 spring-boot-starter-data-couchbase-reactive “Starters”,可以方便地收集依賴項。

32.8.1、連接到 Couchbase

你可以通過添加 Couchbase SDK 和一些配置來獲得 Bucket 和 Cluster。spring.couchbase.* 屬性可用於自定義連接。通常,你提供 bootstrap hosts、bucket name 和 password,如下面示例所示:

SpringBoot中文參考指南(2.1.6)32.8、Couchbase/32.9、LDAP

<code>spring.couchbase.bootstrap-hosts=my-host-1,192.168.1.123
spring.couchbase.bucket.name=my-bucket
spring.couchbase.bucket.password=secret/<code>

提示:你至少需要提供 bootstrap host(s),在這種情況下,bucket name 是默認的,password 是空字符串。或者,你可以定義自己的 org.springframework.data.couchbase.config.CouchbaseConfigurer @Bean 來控制整個配置。

還可以自定義一些 CouchbaseEnvironment 設置。例如,以下配置更改了用於打開新 Bucket 的超時,啟用了 SSL 支持:

SpringBoot中文參考指南(2.1.6)32.8、Couchbase/32.9、LDAP

<code>spring.couchbase.env.timeouts.connect=3000 

spring.couchbase.env.ssl.key-store=/location/of/keystore.jks
spring.couchbase.env.ssl.key-store-password=secret/<code>

有關詳細信息,請查看 spring.couchbase.env.* 屬性。

32.8.2、Spring Data Couchbase 存儲庫

Spring Data 包括對 Couchbase 的存儲庫支持。有關 Spring Data Couchbase 的完整詳細信息,請參閱參考文檔。(https://docs.spring.io/spring-data/couchbase/docs/current/reference/html/ )

你可以像任何其他 Spring Bean 一樣注入一個自動配置的 CouchbaseTemplate 實例,只要有一個可用的缺省 CouchbaseConfigurer(在啟用 Couchbase 支持時發生,如前所述)。

下面的示例展示瞭如何注入 Couchbase bean:

SpringBoot中文參考指南(2.1.6)32.8、Couchbase/32.9、LDAP

<code>@Component
public class MyBean {
private final CouchbaseTemplate template;
@Autowired
public MyBean(CouchbaseTemplate template) {
this.template = template;
}
// ...
}/<code>

你可以在自己的配置中定義幾個 bean 來覆蓋自動配置提供的 bean:

(1)名稱為 couchbaseTemplate 的 CouchbaseTemplate @Bean

(2)名稱為 couchbaseIndexManager 的 IndexManager @Bean

(3)名稱為 couchbaseCustomConversions 的 CustomConversions @Bean

為了避免在你自己的配置中硬編碼這些名稱,你可以重用 Spring Data Couchbase 提供的 BeanNames。例如,可以自定義要使用的轉換器,如下所示:

SpringBoot中文參考指南(2.1.6)32.8、Couchbase/32.9、LDAP

<code>@Configuration
public class SomeConfiguration {
@Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS)
public CustomConversions myCustomConversions() {
return new CustomConversions(...);
}
// ...
}/<code>

提示:如果你想完全繞過 Spring Data Couchbase 的自動配置,請提供你自己的 org.springframework.data.couchbase.config.AbstractCouchbaseDataConfiguration 實現。

32.9、LDAP

LDAP(輕量級目錄訪問協議)是一種開放的、與供應商無關的、行業標準的應用程序協議,用於通過 IP 網絡訪問和維護分佈式目錄信息服務。Spring Boot 為任何兼容的 LDAP 服務器提供自動配置,並支持 UnboundID 中的嵌入式內存 LDAP 服務器。

LDAP 抽象由 Spring Data LDAP 提供。有一個 spring-boot-starter-data-ldap “Starter”,用於以一種方便的方式收集依賴項。

32.9.1、連接到 LDAP 服務器

要連接到 LDAP 服務器,請確保聲明對 spring-boot-starter-data-ldap “Starter” 或 spring-ldap-core 的依賴,然後在 application.properties 中聲明服務器的 URL,如下面示例所示:

SpringBoot中文參考指南(2.1.6)32.8、Couchbase/32.9、LDAP

<code>spring.ldap.urls=ldap://myserver:1235
spring.ldap.username=admin
spring.ldap.password=secret/<code>

如果需要自定義連接設置,可以使用 spring.ldap.base 和 spring.ldap.base-environment 屬性。

LdapContextSource 是基於這些設置自動配置的。如果需要對其進行自定義,例如要使用 PooledContextSource,仍然可以注入自動配置的 LdapContextSource。確保將自定義 ContextSource 標記為 @Primary,以便自動配置的 LdapTemplate 使用它。

32.9.2、Spring Data LDAP 存儲庫

Spring Data 包括對 LDAP 的存儲庫支持。有關 Spring Data LDAP 的完整詳細信息,請參閱參考文檔。

你還可以像對任何其他 Spring Bean 一樣,注入一個自動配置的 LdapTemplate 實例,如下面示例所示:

SpringBoot中文參考指南(2.1.6)32.8、Couchbase/32.9、LDAP

<code>@Component
public class MyBean {
private final LdapTemplate template;
@Autowired
public MyBean(LdapTemplate template) {
this.template = template;
}
// ...
}/<code>

32.9.3、嵌入式內存 LDAP 服務器

出於測試目的,Spring Boot 支持從 UnboundID 自動配置內存中的 LDAP 服務器。要配置服務器,請向 com.unboundid:unboundid-ldapsdk 添加依賴項並聲明 base-dn 屬性,如下所示:

<code>\tspring.ldap.embedded.base-dn=dc=spring,dc=io/<code>

註釋:

但是,可以定義多個 base-dn 值,因為可分辨名稱通常包含逗號,所以必須使用正確的表示法定義它們。

在 yaml 文件中,可以使用 yaml 列表表示法:

SpringBoot中文參考指南(2.1.6)32.8、Couchbase/32.9、LDAP

<code>spring.ldap.embedded.base-dn:
- dc=spring,dc=io
- dc=pivotal,dc=io/<code>

在屬性文件中,必須將索引包含在屬性名中:

SpringBoot中文參考指南(2.1.6)32.8、Couchbase/32.9、LDAP

<code>spring.ldap.embedded.base-dn[0]=dc=spring,dc=io
spring.ldap.embedded.base-dn[1]=dc=pivotal,dc=io/<code>

默認情況下,服務器在隨機端口上啟動並觸發常規 LDAP 支持。不需要指定 spring.ldap.url 屬性。

如果類路徑上有 schema.ldif 文件,則它用於初始化服務器。如果要從其他資源加載初始化腳本,還可以使用 spring.ldap.embedded.ldif 屬性。

默認情況下,標準模式用於驗證 LDIF 文件。通過設置 spring.ldap.embedded.validation.enabled 屬性,可以完全關閉驗證。如果有自定義屬性,則可以使用 spring.ldap.embedded.validation.schema 定義自定義屬性類型或對象類。

32.10、InfluxDB

InfluxDB 是一個開源的時間序列數據庫,針對操作監控、應用程序度量、物聯網(Internet-of-Things)傳感器數據和實時分析等領域的時間序列數據的快速、高可用性存儲和檢索進行了優化。

32.10.1、連接到 InfluxDB

Spring Boot 自動配置 InfluxDB 實例,前提是 influxdb-java 客戶端位於類路徑上,並且設置了數據庫的 URL,如下面示例所示:

<code>\tspring.influx.url=https://172.0.0.1:8086/<code>

如果到 InfluxDB 的連接需要用戶和密碼,則可以相應地設置 spring.influx.user 和 spring.influx.password 屬性。

InfluxDB 依賴於 OKHttp。如果需要優化 InfluxDB 在後臺使用的 http 客戶端,可以註冊 InfluxDbOkHttpClientBuilderProvider bean。

下一篇[未完待續]


分享到:


相關文章: