下一篇[未完待續]
<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,如下面示例所示:
<code>spring.couchbase.bootstrap-hosts=my-host-1,192.168.1.123spring.couchbase.bucket.name=my-bucketspring.couchbase.bucket.password=secret/<code>
提示:你至少需要提供 bootstrap host(s),在這種情況下,bucket name 是默認的,password 是空字符串。或者,你可以定義自己的 org.springframework.data.couchbase.config.CouchbaseConfigurer @Bean 來控制整個配置。
還可以自定義一些 CouchbaseEnvironment 設置。例如,以下配置更改了用於打開新 Bucket 的超時,啟用了 SSL 支持:
<code>spring.couchbase.env.timeouts.connect=3000spring.couchbase.env.ssl.key-store=/location/of/keystore.jksspring.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:
<code>@Componentpublic 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。例如,可以自定義要使用的轉換器,如下所示:
<code>@Configurationpublic 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,如下面示例所示:
<code>spring.ldap.urls=ldap://myserver:1235spring.ldap.username=adminspring.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 實例,如下面示例所示:
<code>@Componentpublic 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>spring.ldap.embedded.base-dn=dc=spring,dc=io/<code>
註釋:
但是,可以定義多個 base-dn 值,因為可分辨名稱通常包含逗號,所以必須使用正確的表示法定義它們。
在 yaml 文件中,可以使用 yaml 列表表示法:
<code>spring.ldap.embedded.base-dn: - dc=spring,dc=io - dc=pivotal,dc=io/<code>
在屬性文件中,必須將索引包含在屬性名中:
<code>spring.ldap.embedded.base-dn[0]=dc=spring,dc=iospring.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>spring.influx.url=https://172.0.0.1:8086/<code>
如果到 InfluxDB 的連接需要用戶和密碼,則可以相應地設置 spring.influx.user 和 spring.influx.password 屬性。
InfluxDB 依賴於 OKHttp。如果需要優化 InfluxDB 在後臺使用的 http 客戶端,可以註冊 InfluxDbOkHttpClientBuilderProvider bean。
下一篇[未完待續]