Working with NoSQL Technologies

Spring Data 提供了其他项目,可帮助你访问各种 NoSQL 技术,包括:

  • {url-spring-data-cassandra-site}[Cassandra]

  • {url-spring-data-couchbase-site}[Couchbase]

  • {url-spring-data-elasticsearch-site}[Elasticsearch]

  • {url-spring-data-gemfire-site}[GemFire] or {url-spring-data-geode-site}[Geode]

  • {url-spring-data-ldap-site}[LDAP]

  • {url-spring-data-mongodb-site}[MongoDB]

  • {url-spring-data-neo4j-site}[Neo4J]

  • {url-spring-data-redis-site}[Redis]

在这之中,Spring Boot 为 Cassandra、Couchbase、Elasticsearch、LDAP、MongoDB、Neo4J 和 Redis 提供自动配置。此外,{url-spring-boot-for-apache-geode-site}[Spring Boot for Apache Geode] 还提供 {url-spring-boot-for-apache-geode-docs}#geode-repositories[Apache Geode 的自动配置]。你可以使用其他项目,但你必须自己配置它们。请参阅 {url-spring-data-site} 上的相应参考文档。 Spring Boot 还为 InfluxDB 客户端提供自动配置,但已弃用以支持 the new InfluxDB Java client,它提供了自己的 Spring Boot 集成。

Redis

Redis是一个缓存、消息代理和功能丰富的键值存储。Spring Boot 为 LettuceJedis客户端库以及 Spring Data Redis提供的之上抽象提供基本的自动配置。

有一个 spring-boot-starter-data-redis "`Starter`"用于以一种便捷的方式收集依赖项。默认情况下,它使用 Lettuce。该 starter 处理传统应用程序和反应式应用程序。

我们还为 "`Starter`"提供一个 spring-boot-starter-data-redis-reactive,以支持其他带反应式支持的存储。

Connecting to Redis

你可以注入一个自动配置的 RedisConnectionFactoryStringRedisTemplate、或普通的 `RedisTemplate`实例,就像注入任何其他 Spring Bean 一样。以下清单展示了此类 bean 的示例:

默认情况下,该实例会尝试连接到 `localhost:6379`的 Redis 服务器。你可以使用 `spring.data.redis.*`属性指定自定义连接详细信息,如下例所示:

spring:
  data:
    redis:
      host: "localhost"
      port: 6379
      database: 0
      username: "user"
      password: "secret"

你还可以注册任意数目的 bean 来实现 LettuceClientConfigurationBuilderCustomizer,以进行更高级的定制。ClientResources`还可以使用 `ClientResourcesBuilderCustomizer`来自定义。如果你使用的是 Jedis,`JedisClientConfigurationBuilderCustomizer`也可用。或者,你可以注册一个类型为 `RedisStandaloneConfiguration、`RedisSentinelConfiguration`或 `RedisClusterConfiguration`的 bean,以完全控制配置。

如果你添加的是任何自动配置类型的 @Bean,则它会替换默认值(除非是 RedisTemplate,此时排除的依据是 bean 名称 redisTemplate,而不是它的类型)。

默认情况下,如果 `commons-pool2`在类路径中,则会自动配置一个连接池工厂。

可以将自动配置的 `RedisConnectionFactory`配置为使用 SSL 与服务器通信,方法是设置属性,如本例所示:

spring:
  data:
    redis:
      ssl:
        enabled: true

可以在一个 SSL bundle中配置自定义的 SSL 信任资料,并将其应用到 RedisConnectionFactory,如本例所示:

spring:
  data:
    redis:
      ssl:
        bundle: "example"

MongoDB

MongoDB是一个开源 NoSQL 文档数据库,它使用类似于 JSON 的模式,而不是传统的基于表的关联数据。Spring Boot 为使用 MongoDB 提供了多种便利,包括 spring-boot-starter-data-mongodb`和 `spring-boot-starter-data-mongodb-reactive “Starters”。

Connecting to a MongoDB Database

要访问 MongoDB 数据库,你可以注入一个自动配置的 org.springframework.data.mongodb.MongoDatabaseFactory。默认情况下,该实例会尝试连接到 `mongodb://localhost/test`的 MongoDB 服务器。以下示例展示了如何连接到 MongoDB 数据库:

如果您定义了自己的 MongoClient,它将用于自动配置一个合适的 MongoDatabaseFactory

自动配置的 MongoClient`使用 `MongoClientSettings`bean 创建。如果您定义了自己的 `MongoClientSettings,它将按原样使用,并且会忽略 spring.data.mongodb`属性。否则,将自动配置 `MongoClientSettings,并将 spring.data.mongodb`属性应用于它。在这两种情况下,您可以声明一个或多个 `MongoClientSettingsBuilderCustomizer`bean 来微调 `MongoClientSettings`配置。每个 bean 都将按顺序使用 `MongoClientSettings.Builder,用于构建 MongoClientSettings

您可以设置 configprop:spring.data.mongodb.uri[] 属性以更改 URL 并配置其他设置,例如 replica set,如下例所示:

spring:
  data:
    mongodb:
      uri: "mongodb://user:secret@mongoserver1.example.com:27017,mongoserver2.example.com:23456/test"

或者,您可以使用离散属性指定连接详细信息。例如,您可以在 `application.properties`中声明以下设置:

spring:
  data:
    mongodb:
      host: "mongoserver1.example.com"
      port: 27017
      additional-hosts:
      - "mongoserver2.example.com:23456"
      database: "test"
      username: "user"
      password: "secret"

可以通过设置如本例所示的属性来配置自动配置的 `MongoClient`在与服务器通信时使用 SSL:

spring:
  data:
    mongodb:
      uri: "mongodb://user:secret@mongoserver1.example.com:27017,mongoserver2.example.com:23456/test"
      ssl:
        enabled: true

可以在 SSL bundle中配置自定义 SSL 信任材料,并将其应用于 MongoClient,如下例所示:

spring:
  data:
    mongodb:
      uri: "mongodb://user:secret@mongoserver1.example.com:27017,mongoserver2.example.com:23456/test"
      ssl:
        bundle: "example"

如果未指定 spring.data.mongodb.port,将使用默认值 27017。您可以从前面显示的示例中删除此行。 您还可以使用 `host:port`语法将端口指定为主机地址的一部分。如果您需要更改 `additional-hosts`条目的端口,应该使用此格式。

如果您不使用 Spring Data MongoDB,则可以注入 MongoClient`bean,而不是使用 `MongoDatabaseFactory。如果您想完全控制 MongoDB 连接的建立,还可以声明自己的 `MongoDatabaseFactory`或 `MongoClient`bean。

如果您使用的是反应式驱动程序,SSL 需要 Netty。如果 Netty 可用且尚未自定义要使用的工厂,则自动配置会自动配置此工厂。

MongoTemplate

{url-spring-data-mongodb-site}[Spring Data MongoDB] 提供了一个在设计上与 Spring 的 JdbcTemplate`非常相似的 {url-spring-data-mongodb-javadoc}/org/springframework/data/mongodb/core/MongoTemplate.html[`MongoTemplate] 类。与 `JdbcTemplate`一样,Spring Boot 会自动为您配置一个 bean,以便注入模板,如下所示:

有关完整详细信息,请参阅 {url-spring-data-mongodb-javadoc}/org/springframework/data/mongodb/core/MongoOperations.html[`MongoOperations`Javadoc]。

Spring Data MongoDB Repositories

Spring Data 包括对 MongoDB 的存储库支持。与前面讨论的 JPA 存储库一样,基本原则是根据方法名称自动构造查询。

实际上,Spring Data JPA 和 Spring Data MongoDB 都共享相同的通用基础设施。您可以获取前面的 JPA 示例,假设 City`现在是一个 MongoDB 数据类,而不是 JPA `@Entity,它以相同的方式工作,如下例所示:

存储库和文档是通过扫描找到的。默认情况下,扫描 auto-configuration packages。您可以通过分别使用 `@EnableMongoRepositories`和 `@EntityScan`来自定义要查找存储库和文档的位置。

有关 Spring Data MongoDB 的完整详细信息,包括其丰富的对象映射技术,请参阅其 {url-spring-data-mongodb-docs}[参考文档]。

Neo4j

Neo4j是一个开放源代码 NoSQL 图数据库,它使用由一级关系连接的节点的丰富数据模型,它比传统 RDBMS 方法更适合连接的大数据。Spring Boot 提供了多种便利措施来处理 Neo4j,包括 spring-boot-starter-data-neo4j“Starter”。

Connecting to a Neo4j Database

要访问 Neo4j 服务器,您可以注入一个自动配置的 org.neo4j.driver.Driver。默认情况下,该实例尝试使用 Bolt 协议连接到 localhost:7687`的 Neo4j 服务器。以下示例显示了如何注入 Neo4j `Driver,它能让您访问 Session,以及其他内容:

可以使用 @1 属性配置驱动程序的各方面。以下示例演示如何配置要使用的 URI 和凭证:

spring:
  neo4j:
    uri: "bolt://my-server:7687"
    authentication:
      username: "neo4j"
      password: "secret"

自动配置的 @2 是使用 @3 创建的。要微调其配置,请声明一个或多个 @4 Bean。每个 bean 都会按顺序使用 @5@6 进行构建。

Spring Data Neo4j Repositories

Spring Data 包括 Neo4j 存储库支持。有关 Spring Data Neo4j 的完整详细信息,请参阅 {url-spring-data-neo4j-docs}[参考文档]。

Spring Data Neo4j 与 Spring Data JPA 共享通用基础架构,与许多其他 Spring Data 模块一样。你可以获取前面的 JPA 示例,并将 @7 定义为 Spring Data Neo4j @8 而不是 JPA @9,存储库抽象工作方式相同,如下面的示例中所示:

@11 @10 启用了存储库支持以及事务管理。Spring Boot 使用 @12@13 Bean 支持经典和响应式 Neo4j 存储库。当类路径上提供 Project Reactor 时,还会自动配置响应式样式。

通过扫描找到存储库和实体。默认情况下,会扫描 @16。你可以使用 @14@15 分别自定义查找存储库和实体的位置。

在使用响应式样式的应用程序中,不会自动配置 @17。为了启用事务管理,必须在配置中定义以下 Bean: include-code::MyNeo4jConfiguration[]

Elasticsearch

@19 是一个开源、分布式、RESTful 搜索和分析引擎。Spring Boot 为 Elasticsearch 客户端提供了基本的自动配置。

Spring Boot 支持多个客户端:

  • 官方低级 REST 客户端

  • 官方 Java API 客户端

  • @20 由 Spring Data Elasticsearch 提供

Spring Boot 提供了一个专门的 @21, @22

Connecting to Elasticsearch Using REST clients

Elasticsearch 提供了两个不同的 REST 客户端,你可以使用它们来查询集群:来自 @23 模块的 @28 和来自 @24 模块的 @29。此外,Spring Boot 提供了对来自 @25 模块的响应式客户端的支持。默认情况下,客户端将针对 @26。你可以使用 @27 属性进一步微调客户端的配置,如下面的示例所示:

spring:
  elasticsearch:
    uris: "https://search.example.com:9200"
    socket-timeout: "10s"
    username: "user"
    password: "secret"

Connecting to Elasticsearch Using RestClient

如果你在类路径上有 @30,Spring Boot 将自动配置并注册一个 @31 Bean。除了前面描述的属性之外,为了微调 @32,你可以注册任意数量实现 @33 的 Bean,以进行更高级别的自定义。要完全控制客户端的配置,请定义一个 @34 Bean。

此外,如果类路径上存在 @35,则会自动配置 @36,以从正在运行的 Elasticsearch 集群中自动发现节点并将它们设置在 @37 Bean 上。你可以进一步微调 @38 的配置,如下面的示例所示:

spring:
  elasticsearch:
    restclient:
      sniffer:
        interval: "10m"
        delay-after-failure: "30s"

Connecting to Elasticsearch Using ElasticsearchClient

如果你在类路径上有 @39,Spring Boot 将自动配置并注册 @40 Bean。

{ElasticsearchClient} 使用依赖于前面所述的 {RestClient} 的传输。因此,先前述及的属性可用来配置 {ElasticsearchClient}。另外,您可以定义一个 {RestClientOptions} bean 以进一步控制传输的行为。

Connecting to Elasticsearch using ReactiveElasticsearchClient

{@ url-spring-data-elasticsearch-site}[Spring Data Elasticsearch]} 提供 {ReactiveElasticsearchClient} 用以以响应式方式查询 Elasticsearch 实例。如果您在类路径中有 Spring Data Elasticsearch 和 Reactor,Spring Boot 将自动配置并注册一个 {ReactiveElasticsearchClient}。

{ReactiveElasticsearchclient} 使用依赖于前面所述的 {RestClient} 的传输。因此,先前述及的属性可用来配置 {ReactiveElasticsearchClient}。另外,您可以定义一个 {RestClientOptions} bean 以进一步控制传输的行为。

Connecting to Elasticsearch by Using Spring Data

要连接至 Elasticsearch,必须定义一个 {ElasticsearchClient} bean,由 Spring Boot 自动配置或由应用程序手动提供(请参见前面的部分)。有了此配置,就可以注入一个 {ElasticsearchTemplate} 就像注入任何其他 Spring bean 一样,如下例所示:

在存在 {spring-data-elasticsearch} 和 Reactor 的情况下,Spring Boot 还可以将 {ReactiveElasticsearchClient} 和 {ReactiveElasticsearchTemplate} 自动配置为 bean。它们是其他 REST 客户端的响应式等效项。

Spring Data Elasticsearch Repositories

Spring Data 包括对 Elasticsearch 的存储库支持。与先前讨论的 JPA 存储库一样,基本原理是基于方法名称自动为您构建查询。

事实上,Spring Data JPA 和 Spring Data Elasticsearch 都共享相同的公共基础架构。您可以使用前文提到的 JPA 示例,假设 {City} 现在是一个 Elasticsearch {@Document} 类,而不是一个 JPA {@Entity},它的工作方式是一样的。

将通过扫描查找存储库和文档。默认情况下,将扫描 {auto-configuration packages}。您可以使用 {@EnableElasticsearchRepositories} 和 {@EntityScan} 分别来自定义查找存储库和文档的位置。

有关 Spring Data Elasticsearch 的详细信息,请参见 {@ url-spring-data-elasticsearch-docs}[参考文档]。

Spring Boot 使用 {ElasticsearchRestTemplate} 或 {ReactiveElasticsearchTemplate} bean 支持经典和响应式 Elasticsearch 存储库。如果存在需要的依赖项,Spring Boot 很可能自动配置这些 bean。

如果您希望使用自己的模板作为 Elasticsearch 存储库的后端,您可以添加自己的 {ElasticsearchRestTemplate} 或 {ElasticsearchOperations} {@Bean},只要命名为 {"elasticsearchTemplate"} 即可。与 {ReactiveElasticsearchTemplate} 和 {ReactiveElasticsearchOperations} 相同,bean 名称是 {"reactiveElasticsearchTemplate"}。

您可以选择使用以下属性禁用存储库支持:

    spring:
      data:
        elasticsearch:
          repositories:
            enabled: false

Cassandra

{ Cassandra} 是一个开源的分布式数据库管理系统,旨在跨多台商用服务器处理海量数据。Spring Boot 为 Cassandra 和它之上的抽象(由 {@ url-spring-data-cassandra-site}[Spring Data Cassandra]} 提供)提供了自动配置。有一个 {spring-boot-starter-data-cassandra} {“Starter”} 用于以便捷的方式收集依赖项。

Connecting to Cassandra

您可以注入自动配置的 {CassandraTemplate} 或 Cassandra {CqlSession} 实例,就像注入任何其他 Spring Bean 一样。{spring.cassandra.*} 属性可用于自定连接。通常,您会提供 {keyspace-name} 和 {contact-points},以及本地数据中心名称,如下例所示:

spring:
  cassandra:
    keyspace-name: "mykeyspace"
    contact-points: "cassandrahost1:9042,cassandrahost2:9042"
    local-datacenter: "datacenter1"

如果所有接触点的端口相同,您可以使用一个快捷方式,仅指定主机名,如下例所示:

spring:
  cassandra:
    keyspace-name: "mykeyspace"
    contact-points: "cassandrahost1,cassandrahost2"
    local-datacenter: "datacenter1"

这两个示例相同,因为端口默认为 {9042}。如果您需要配置端口,请使用 {spring.cassandra.port}。

可以将自动配置的 {CqlSession} 配置为使用 SSL 与服务器通信,方法是按此示例所示设置属性:

spring:
  cassandra:
    keyspace-name: "mykeyspace"
    contact-points: "cassandrahost1,cassandrahost2"
    local-datacenter: "datacenter1"
    ssl:
      enabled: true

可以在 {SSL bundle} 中配置自定义 SSL 信任材料,并将其应用于 {CqlSession},如下例所示:

spring:
  cassandra:
    keyspace-name: "mykeyspace"
    contact-points: "cassandrahost1,cassandrahost2"
    local-datacenter: "datacenter1"
    ssl:
      bundle: "example"

Cassandra 驱动程序有它自己的配置基础架构,该基础架构在类路径的根目录加载一个 {application.conf}。 Spring Boot 在默认情况下不会查找此类文件,但是可以使用 spring.cassandra.config 加载一个此类文件。如果一个属性在 spring.cassandra. and the configuration file, the value in spring.cassandra. 中也存在,则后者优先。 针对更高级的驱动器自定义,您可以注册实现 DriverConfigLoaderBuilderCustomizer 的任意数量的 Bean。可以针对类型为 CqlSessionBuilderCustomizer 的 Bean 自定义 CqlSession

如果您使用 CqlSessionBuilder 创建多个 CqlSession Bean,请记住,该构建器是可修改的,因此请确保为每个会话注入一个新的副本。

以下代码清单展示了如何注入一个 Cassandra Bean:

如果您添加自己类型为 CassandraTemplate@Bean,它将替换默认值。

Spring Data Cassandra Repositories

Spring Data 包含用于 Cassandra 的基本存储库支持。目前,这比前面讨论的 JPA 存储库更为受限,需要 @Query 带注释的查找器方法。

存储库和实体会通过扫描找到。默认情况下,会扫描 auto-configuration packages。您可以通过分别使用 @EnableCassandraRepositories@EntityScan,自定义查找存储库和实体的位置。

有关 Spring Data Cassandra 的完整详细信息,请参见 reference documentation

Couchbase

Couchbase 是一款开源、分布式、多模型非 SQL 面向文档的数据库,它针对交互式应用程序进行了优化。Spring Boot 为 Couchbase 和基于其之上由 Spring Data Couchbase 提供的抽象提供自动配置。有 spring-boot-starter-data-couchbasespring-boot-starter-data-couchbase-reactive “Starters”,用于以一种方便的方式收集依赖关系。

Connecting to Couchbase

您可以通过添加 Couchbase SDK 以及一些配置来获取一个 Cluster。可以使用 spring.couchbase.* 属性来自定义连接。通常,您需要提供 connection string、用户名和密码,如下面的示例所示:

spring:
  couchbase:
    connection-string: "couchbase://192.168.1.123"
    username: "user"
    password: "secret"

还可以自定义某些 ClusterEnvironment 设置。例如,以下配置将打开一个新的 Bucket 的超时,并利用对一个已配置 SSL bundle 的引用启用 SSL 支持:

spring:
  couchbase:
    env:
      timeouts:
        connect: "3s"
      ssl:
        bundle: "example"

查看 spring.couchbase.env.* 属性以获取更多详细信息。为了进一步实现控制,可以使用一个或多个 ClusterEnvironmentBuilderCustomizer Bean。

Spring Data Couchbase Repositories

Spring Data 包含 Couchbase 的存储库支持。

存储库和文档会通过扫描找到。默认情况下,会扫描 auto-configuration packages。您可以通过分别使用 @EnableCouchbaseRepositories@EntityScan,自定义查找存储库和文档的位置。

有关 Spring Data Couchbase 的完整详细信息,请参见 {url-spring-data-couchbase-docs}[参考文档]。

您可以注入自动配置的 CouchbaseTemplate 实例,这与您使用任何其他 Spring Bean 的方式相同,前提是提供了 CouchbaseClientFactory Bean。当一个 Cluster 可用时会发生这种情况,如上所述,并且已经指定了一个 Bucket 名称:

spring:
  data:
    couchbase:
      bucket-name: "my-bucket"

以下示例展示了如何注入一个 CouchbaseTemplate Bean:

您可以在自己的配置中定义一些 Bean,以覆盖自动配置所提供的 Bean:

  • 具有名称 couchbaseMappingContextCouchbaseMappingContext @Bean

  • 具有名称 couchbaseCustomConversionsCustomConversions @Bean

  • 具有名称 couchbaseTemplateCouchbaseTemplate @Bean

为了避免在自己的配置中硬编码这些名称,你可以重用 Spring Data Couchbase 提供的 BeanNames。例如,你可以自定义要使用的转换器,如下所示:

LDAP

LDAP(轻量级目录访问协议)是一个开放的、供应商中立的、行业标准应用程序协议,用于通过 IP 网络访问和维护分布式目录信息服务。Spring Boot 为任何兼容的 LDAP 服务器提供自动配置,并支持 UnboundID 中的嵌入式内存中 LDAP 服务器。

LDAP 抽象由 Spring Data LDAP 提供。有一个 spring-boot-starter-data-ldap “Starter” 可用于便捷地收集依赖项。

Connecting to an LDAP Server

若要连接到 LDAP 服务器,请确保声明对 spring-boot-starter-data-ldap “Starter” 或 spring-ldap-core 的依赖,然后在 application.properties 中声明服务器的 URL,如下例所示:

spring:
  ldap:
    urls: "ldap://myserver:1235"
    username: "admin"
    password: "secret"

如果需要自定义连接设置,则可以使用 spring.ldap.basespring.ldap.base-environment 属性。

基于这些设置,会自动配置一个 LdapContextSource。如果 DirContextAuthenticationStrategy bean 可用,则将其与自动配置的 LdapContextSource 关联。如果你需要自定义它(例如为了使用 PooledContextSource),你仍然可以注入自动配置的 LdapContextSource。确保将自定义的 ContextSource 标记为 @Primary,这样自动配置的 LdapTemplate 就会使用它。

Spring Data LDAP Repositories

Spring Data 包含对 LDAP 的存储库支持。

通过扫描找到存储库和文档。默认情况下,扫描 auto-configuration packages。你可以分别使用 @EnableLdapRepositories@EntityScan 来自定义要查找存储库和文档的位置。

有关 Spring Data LDAP 的完整详细信息,请参阅 reference documentation

你还可以注入自动配置的 LdapTemplate 实例,就像你使用任何其他 Spring Bean 一样,如下例所示:

Embedded In-memory LDAP Server

出于测试目的,Spring Boot 支持自动配置 UnboundID 中的内存中 LDAP 服务器。若要配置服务器,请添加对 com.unboundid:unboundid-ldapsdk 的依赖,并声明一个 configprop:spring.ldap.embedded.base-dn[] 属性,如下所示:

spring:
  ldap:
    embedded:
      base-dn: "dc=spring,dc=io"

可以定义多个基本 DN 值,但由于 DN 通常包含逗号,因此必须使用正确的符号来定义它们。 在 Yaml 文件中,可以使用 Yaml 列表符号。在属性文件中,必须将索引包含在属性名称中:

spring.ldap.embedded.base-dn:
- "dc=spring,dc=io"
- "dc=vmware,dc=com"

默认情况下,服务器在随机端口上启动并触发常规 LDAP 支持。无需指定 configprop:spring.ldap.urls[] 属性。

如果在你的类路径上存在一个 schema.ldif 文件,它将用于初始化服务器。如果你想从其他资源中加载初始化脚本,你也可以使用 configprop:spring.ldap.embedded.ldif[] 属性。

默认情况下,一个标准模式用于验证 LDIF 文件。你可以通过设置 configprop:spring.ldap.embedded.validation.enabled[] 属性完全关闭验证。如果你有自定义属性,你可以使用 configprop:spring.ldap.embedded.validation.schema[] 定义你自定义的属性类型或对象类。

InfluxDB

用于 InfluxDB 的自动配置已被弃用,计划在 Spring Boot 3.4 中删除,以支持 the new InfluxDB Java client,它提供了它自己的 Spring Boot 集成。

InfluxDB 是一个开源的时间序列数据库,针对快速、高可用存储和检索诸如操作监控、应用程序指标、物联网传感器数据和实时分析等领域的时间序列数据进行了优化。

Connecting to InfluxDB

Spring Boot 自动配置一个 InfluxDB 实例,前提是 influxdb-java 客户端在类路径中,并且数据库的 URL 使用 configprop:spring.influx.url[已弃用] 设置。

如果连接到 InfluxDB 需要一个用户和密码,你就可以相应地设置 configprop:spring.influx.user[已弃用] 和 configprop:spring.influx.password[已弃用] 属性。

InfluxDB 依赖于 OkHttp。如果你需要调整 http 客户端在幕后使用的 InfluxDB,你可以注册一个 InfluxDbOkHttpClientBuilderProvider Bean。

如果你需要更多地控制配置,请考虑注册一个 InfluxDbCustomizer Bean。