上一篇[32.6Elasticsearch、Cassandra]
下一篇[未完待续]
![884ce15b4f96f7f550538a488c673814.png](https://img-blog.csdnimg.cn/img_convert/884ce15b4f96f7f550538a488c673814.png)
英文原文:https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-nosql.html
GitHub:https://github.com/jijicai/Spring/tree/master/spring-boot
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,如下面示例所示:
![cca97f31cfab3125cb7c52dcc2750c15.png](https://img-blog.csdnimg.cn/img_convert/cca97f31cfab3125cb7c52dcc2750c15.png)
spring.couchbase.bootstrap-hosts=my-host-1,192.168.1.123spring.couchbase.bucket.name=my-bucketspring.couchbase.bucket.password=secret
提示:你至少需要提供 bootstrap host(s),在这种情况下,bucket name 是默认的,password 是空字符串。或者,你可以定义自己的 org.springframework.data.couchbase.config.CouchbaseConfigurer @Bean 来控制整个配置。
还可以自定义一些 CouchbaseEnvironment 设置。例如,以下配置更改了用于打开新 Bucket 的超时,启用了 SSL 支持:
![c635219784ace027c3c8eb9923016e95.png](https://img-blog.csdnimg.cn/img_convert/c635219784ace027c3c8eb9923016e95.png)
spring.couchbase.env.timeouts.connect=3000spring.couchbase.env.ssl.key-store=/location/of/keystore.jksspring.couchbase.env.ssl.key-store-password=secret
有关详细信息,请查看 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:
![687a9569b8a03db84749de92aaadcca3.png](https://img-blog.csdnimg.cn/img_convert/687a9569b8a03db84749de92aaadcca3.png)
@Componentpublic class MyBean { private final CouchbaseTemplate template; @Autowired public MyBean(CouchbaseTemplate template) { this.template = template; } // ...}
你可以在自己的配置中定义几个 bean 来覆盖自动配置提供的 bean:
(1)名称为 couchbaseTemplate 的 CouchbaseTemplate @Bean
(2)名称为 couchbaseIndexManager 的 IndexManager @Bean
(3)名称为 couchbaseCustomConversions 的 CustomConversions @Bean
为了避免在你自己的配置中硬编码这些名称,你可以重用 Spring Data Couchbase 提供的 BeanNames。例如,可以自定义要使用的转换器,如下所示:
![7ffa618c6b80947bfa072570c774f040.png](https://img-blog.csdnimg.cn/img_convert/7ffa618c6b80947bfa072570c774f040.png)
@Configurationpublic class SomeConfiguration { @Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS) public CustomConversions myCustomConversions() { return new CustomConversions(...); } // ...}
提示:如果你想完全绕过 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,如下面示例所示:
![25e0f01c432ed67e37e1e6b70856b611.png](https://img-blog.csdnimg.cn/img_convert/25e0f01c432ed67e37e1e6b70856b611.png)
spring.ldap.urls=ldap://myserver:1235spring.ldap.username=adminspring.ldap.password=secret
如果需要自定义连接设置,可以使用 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 实例,如下面示例所示:
![d1643d1e1bb30f48862a97dc6b1103e4.png](https://img-blog.csdnimg.cn/img_convert/d1643d1e1bb30f48862a97dc6b1103e4.png)
@Componentpublic class MyBean { private final LdapTemplate template; @Autowired public MyBean(LdapTemplate template) { this.template = template; } // ...}
32.9.3、嵌入式内存 LDAP 服务器
出于测试目的,Spring Boot 支持从 UnboundID 自动配置内存中的 LDAP 服务器。要配置服务器,请向 com.unboundid:unboundid-ldapsdk 添加依赖项并声明 base-dn 属性,如下所示:
spring.ldap.embedded.base-dn=dc=spring,dc=io
注释:
但是,可以定义多个 base-dn 值,因为可分辨名称通常包含逗号,所以必须使用正确的表示法定义它们。
在 yaml 文件中,可以使用 yaml 列表表示法:
![d47325be4e6da1d0deaa0b334b88adc8.png](https://img-blog.csdnimg.cn/img_convert/d47325be4e6da1d0deaa0b334b88adc8.png)
spring.ldap.embedded.base-dn: - dc=spring,dc=io - dc=pivotal,dc=io
在属性文件中,必须将索引包含在属性名中:
![9b18dafa7174ddf7e483a2d0b97fae3a.png](https://img-blog.csdnimg.cn/img_convert/9b18dafa7174ddf7e483a2d0b97fae3a.png)
spring.ldap.embedded.base-dn[0]=dc=spring,dc=iospring.ldap.embedded.base-dn[1]=dc=pivotal,dc=io
默认情况下,服务器在随机端口上启动并触发常规 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,如下面示例所示:
spring.influx.url=https://172.0.0.1:8086
如果到 InfluxDB 的连接需要用户和密码,则可以相应地设置 spring.influx.user 和 spring.influx.password 属性。
InfluxDB 依赖于 OKHttp。如果需要优化 InfluxDB 在后台使用的 http 客户端,可以注册 InfluxDbOkHttpClientBuilderProvider bean。
上一篇[32.6Elasticsearch、Cassandra]
下一篇[未完待续]