🍊
翻译橙
🍊返回主站🤖参与贡献
  • hello,这里是翻译橙
  • spring boot参考文档
    • 1. 法律
    • 2. 寻求帮助
    • 3. 文档概述
    • 4. 入门
    • 5. 升级Spring Boot
    • 6. 使用 Spring Boot 进行开发
      • 6.1. 构建系统
      • 6.2. 构建你的代码
      • 6.3. 配置类
      • 6.4. 自动配置
      • 6.5. Spring Bean 和依赖注入
      • 6.6. 使用@SpringBootApplication注解
      • 6.7. 运行您的应用程序
      • 6.8. 开发者工具
      • 6.9. 打包您的生产应用程序
      • 6.10. 接下来读什么
    • 7.核心特性
      • 7.1. SpringApplication
      • 7.2. 外部化配置
      • 7.3.Profile配置
      • 7.4.日志记录
      • 7.5.国际化
      • 7.6 面向切面的编程
      • 7.7. JSON
      • 7.8. 任务执行与调度
      • 7.9. 单元测试
        • 7.9.1. 测试范围依赖
        • 7.9.2. 测试 Spring 应用程序
        • 7.9.3. 测试 Spring Boot 应用程序
        • 7.9.4. 测试容器
        • 7.9.5. 测试工具
      • 7.10. Docker Compose 支持
      • 7.11. 测试容器支持
      • 7.12. 创建您自己的自动配置
      • 7.13. Kotlin 支持
      • 7.14 SSL
      • 7.15.接下来要读什么
    • 8. 网络
      • 8.1. Servlet Web 应用程序
        • 8.1.1. “Spring Web MVC 框架”
        • 8.1.2. JAX-RS 和Jersey
        • 8.1.3. 嵌入式 Servlet 容器支持
      • 8.2 反应式网络应用程序
        • 8.2.1. “Spring WebFlux 框架”
        • 8.2.2. 嵌入式反应式服务器支持
        • 8.2.3. 反应式服务器资源配置
      • 8.3. 优雅关机
      • 8.4. spring安全
        • 8.4.1. MVC安全
        • 8.4.2. WebFlux 安全
        • 8.4.3. OAuth2
        • 8.4.4. SAML 2.0
      • 8.5. spring 会话
      • 8.6.GraphQL
      • 8.7. Spring HATEOAS
      • 8.8.接下来读什么
    • 9. 数据
      • 9.1. SQL数据库
      • 9.2. 使用 NoSQL 技术
      • 9.3. 接下来读什么
    • 10. 消息
      • 10.1. JMS
      • 10.2. AMQP
      • 10.3. Apache Kafka 支持
      • 10.4. Apache Pulsar 支持
      • 10.5. RSocket
      • 10.6. Spring Integration
      • 10.7. WebSockets
      • 10.8. What to Read Next
    • 11. IO
      • 11.1. 缓存
      • 11.2. Hazelcast
      • 11.3. Quartz 调度程序
      • 11.4. 发送电子邮件
      • 11.5. 验证
      • 11.6. 调用 REST 服务
      • 11.7. web services
      • 11.8. 使用 JTA 进行分布式事务
      • 11.9. 接下来读什么
    • 12. 容器镜像
  • Spring核心功能
    • 1.IOC容器和Bean简介
      • 1.2. 容器概述
      • 1.3. Bean概述
      • 1.4. 依赖项
        • 1.4.1. 依赖注入
        • 1.4.2. 详细的依赖关系和配置
        • 1.4.3. 使用depends-on
        • 1.4.4. 延迟初始化的 Bean
        • 1.4.5. 自动装配协作者
        • 1.4.6. 方法注入
    • 2. Resources
      • 2.1. 介绍
      • 2.2. Resource接口
      • 2.3. 内置Resource实现
      • 2.4. ResourceLoader接口
      • 2.5. ResourcePatternResolver接口
      • 2.6. ResourceLoaderAware接口
      • 2.7. 资源作为依赖
      • 2.8. 应用程序上下文和资源路径
    • 3. 验证、数据绑定和类型转换
      • 3.1. 使用 Spring 的 Validator 接口进行验证
      • 3.2. 将代码解析为错误消息
      • 3.3. Bean 操作和BeanWrapper
      • 3.4. spring类型转换
      • 3.5. spring字段格式
      • 3.6. 配置全局日期和时间格式
      • 3.7. Java Bean 验证
    • 4. SpEL表达式
    • 5. Spring 面向切面编程
      • 5.1. AOP 概念
      • 5.2. Spring AOP 的能力和目标
      • 5.3. AOP 代理
      • 5.4. @AspectJ 支持
        • 5.4.1. 启用@AspectJ 支持
        • 5.4.2. 声明一个切面
        • 5.4.3. 声明切入点
        • 5.4.4. 声明切点
        • 5.4.5. 切面说明
        • 5.4.6. 切面实例化模型
        • 5.4.7. AOP 示例
      • 5.5. 基于模式的 AOP 支持
      • 5.6. 选择要使用的 AOP 声明样式
      • 5.7. 混合切面类型
      • 5.8. 代理机制
      • 5.9. @AspectJ 代理的程序化创建
      • 5.10. 在 Spring 应用程序中使用 AspectJ
      • 5.11.更多资源
    • 6. Spring AOP API
      • 6.1. Spring中的切入点API
      • 6.2. Spring 中的 Advice API
      • 6.3. Spring 中的 Advisor API
      • 6.4. 使用ProxyFactoryBean创建 AOP 代理
      • 6.5. 简洁的代理定义
      • 6.6. 以编程方式创建 AOP 代理ProxyFactory
      • 6.7. 操作切面对象
      • 6.8. 使用“自动代理”工具
      • 6.9. 使用TargetSource实现
      • 6.10. 定义新的切面类型
    • 7. 空指针安全
    • 8. 数据缓冲器和编解码器
    • 9. 日志
    • 10. 附录
      • 10.1. XML 模式
      • 10.2. 自定义XML Schema
        • 10.2.1. 创作 Schema
        • 10.2.2. 编码一个NamespaceHandler
        • 10.2.3. 使用BeanDefinitionParser
        • 10.2.4. 注册处理程序和模式
        • 10.2.5. 在 Spring XML 配置中使用自定义扩展
        • 10.2.6. 更详细的例子
      • 10.3. 应用程序启动步骤
  • 使用redis实现分布式锁
  • Java 安全标准算法名称
  • JDK 9 JEP
  • JDK 10 JEP
  • 人件
    • 《人件》
    • 第一部分 管理人力资源
      • 01 此时此刻,一个项目正在走向失败
      • 02 干酪汉堡,做一个,卖一个
      • 03 维也纳在等你
      • 04 质量——如果时间允许
      • 05 再谈帕金森定律
      • 06 苦杏素
    • 第二部分 办公环境
      • 07 家具警察
      • 08 “朝九晚五在这里啥也完成不了。”
      • 09 在空间上省钱
      • 间奏曲:生产效率度量和不明飞行物
      • 10 大脑时问与身体时间
      • 11 电话
      • 12 门的回归
      • 13 采取保护步骤
    • 第三部分 正确的人
      • 14 霍恩布洛尔因素
      • 15 谈谈领导力
      • 16 雇一名杂耍演员
      • 17 与他人良好合作
      • 18 童年的终结
      • 19 在这儿很开心
      • 20 人力资本
    • 第四部分 高效团队养成
      • 21 整体大于部分之和
      • 22 黑衣团队
      • 23 团队自毁
      • 24 再谈团队自毁
      • 25 竞争
      • 26 一顿意面晚餐
      • 27 敞开和服
      • 28 团队形成的化学反应
    • 第五部分 沃土
      • 29 自我愈复系统
      • 30 与风险共舞
      • 3l 会议、独白和交流
      • 32 终极管理罪恶得主是……
      • 33 “邪恶”电邮
      • 34 让改变成为可能
      • 35 组织型学习
      • 36 构建社区
    • 第六部分 快乐地工作
      • 37 混乱与秩序
      • 38 自由电子
      • 39 霍尔加·丹斯克
由 GitBook 提供支持
在本页

这有帮助吗?

在GitHub上编辑
  1. spring boot参考文档
  2. 9. 数据

9.2. 使用 NoSQL 技术

上一页9.1. SQL数据库下一页9.3. 接下来读什么

最后更新于1年前

这有帮助吗?

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

  • 或

其中,Spring Boot 为 Cassandra、Couchbase、Elasticsearch、LDAP、MongoDB、Neo4J 和 Redis 提供自动配置。此外,为 Apache Geode提供。您可以使用其他项目,但必须自己配置它们。上的相应参考文档。

Spring Boot 还为 InfluxDB 客户端提供自动配置,但它已被弃用,取而代之的是提供自己的 Spring Boot 集成的

9.2.1. Redis

是一个缓存、消息代理和功能丰富的键值存储。和提供的抽象提供基本的自动配置。

有一个spring-boot-starter-data-redis“Starter”可以方便地收集依赖项。默认情况下,它使用。该启动器可以处理传统应用程序和反应式应用程序。

我们还提供了一个spring-boot-starter-data-redis-reactive“Starter”,以便与其他存储保持一致并提供反应性支持。

连接到 Redis

您可以像注入任何其他 Spring Bean 一样注入自动配置的RedisConnectionFactory、StringRedisTemplate或普通 RedisTemplate 实例。以下清单显示了此类 bean 的示例:

@Component
public class MyBean {
​
    private final StringRedisTemplate template;
​
    public MyBean(StringRedisTemplate template) {
        this.template = template;
    }
​
    // ...
​
}

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

spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.database=0
spring.data.redis.username=user
spring.data.redis.password=secret

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

如果您添加自己的任何自动配置类型的@Bean,它将替换默认类型(除了RedisTemplate 的情况,当排除是基于 bean 名称redisTemplate而不是其类型时)。

默认情况下,如果池连接工厂位于类路径commons-pool2上,则会自动配置。

通过设置属性,可以将自动配置RedisConnectionFactory配置为使用 SSL 与服务器进行通信,如下例所示:

spring.data.redis.ssl.enabled=true
spring.data.redis.ssl.bundle=example

9.2.2. MongoDB

连接到 MongoDB 数据库

要访问 MongoDB 数据库,您可以注入自动配置的org.springframework.data.mongodb.MongoDatabaseFactory. 默认情况下,实例尝试连接到位于mongodb://localhost/test 的 MongoDB 服务器。以下示例显示如何连接到 MongoDB 数据库:

@Component
public class MyBean {
​
    private final MongoDatabaseFactory mongo;
​
    public MyBean(MongoDatabaseFactory mongo) {
        this.mongo = mongo;
    }
​
    // ...
​
}

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

自动配置MongoClient是使用MongoClientSettingsbean 创建的。如果您定义了自己的MongoClientSettings,它将不加修改地使用,并且spring.data.mongodb属性将被忽略。否则 MongoClientSettings将被自动配置并应用属性spring.data.mongodb。无论哪种情况,您都可以声明一个或多个MongoClientSettingsBuilderCustomizerbean 来微调MongoClientSettings配置。每个将按照用于构建MongoClientSettings 的顺序被MongoClientSettings.Builder调用。

您可以设置spring.data.mongodb.uri属性来更改 URL 并配置其他设置,例如副本集,如以下示例所示:

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
spring.data.mongodb.port=27017
spring.data.mongodb.additional-hosts[0]=mongoserver2.example.com:23456
spring.data.mongodb.database=test
spring.data.mongodb.username=user
spring.data.mongodb.password=secret

通过设置属性,可以将自动配置MongoClient配置为使用 SSL 与服务器进行通信,如下例所示:

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

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

如果您不使用 Spring Data MongoDB,您可以注入一个MongoClientbean 而不是使用MongoDatabaseFactory. 如果你想完全控制MongoDB连接的建立,你也可以声明你自己的MongoDatabaseFactory或 MongoClientbean。

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

MongoTemplate

Spring Data MongoDB 提供了一个 MongoTemplate 类,其设计与 Spring 的JdbcTemplate非常相似。与JdbcTemplate一样,Spring Boot 会自动配置一个 bean 供您注入模板,如下所示:

@Component
public class MyBean {
​
    private final MongoTemplate mongoTemplate;
​
    public MyBean(MongoTemplate mongoTemplate) {
        this.mongoTemplate = mongoTemplate;
    }
​
    // ...
​
}

Spring Data MongoDB 存储库

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

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

public interface CityRepository extends Repository<City, Long> {
​
    Page<City> findAll(Pageable pageable);
​
    City findByNameAndStateAllIgnoringCase(String name, String state);
​
}

9.2.3. Neo4j

连接到 Neo4j 数据库

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

@Component
public class MyBean {
​
    private final Driver driver;
​
    public MyBean(Driver driver) {
        this.driver = driver;
    }
​
    // ...
​
}

您可以使用属性配置驱动程序的各个方面spring.neo4j.*。以下示例显示如何配置要使用的 uri 和凭据:

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

自动配置的驱动程序是使用ConfigBuilder创建的。要微调其配置,请声明一个或多个ConfigBuilderCustomizer bean。每个都将按照用于构建驱动程序的ConfigBuilder 的顺序被调用。

Spring Data Neo4j 存储库

与许多其他 Spring Data 模块一样,Spring Data Neo4j 与 Spring Data JPA 共享公共基础设施。您可以采用前面的 JPA 示例并将City定义为 Spring Data Neo4j@Node而不是 JPA @Entity,并且存储库抽象以相同的方式工作,如以下示例所示:

public interface CityRepository extends Neo4jRepository<City, Long> {
​
    Optional<City> findOneByNameAndState(String name, String state);
​
}

“ Starter spring-boot-starter-data-neo4j”支持存储库支持以及事务管理。Spring Boot 使用Neo4jTemplate或ReactiveNeo4jTemplatebeans支持经典和反应式 Neo4j 存储库。当 Project Reactor 在类路径上可用时,响应式样式也会自动配置。

在使用反应式风格的应用程序中,ReactiveTransactionManager不是自动配置的。要启用事务管理,必须在您的配置中定义以下 bean:

@Configuration(proxyBeanMethods = false)
public class MyNeo4jConfiguration {
​
    @Bean
    public ReactiveNeo4jTransactionManager reactiveTransactionManager(Driver driver,
            ReactiveDatabaseSelectionProvider databaseNameProvider) {
        return new ReactiveNeo4jTransactionManager(driver, databaseNameProvider);
    }
​
}

9.2.4. Elasticsearch

Spring Boot 支持多种客户端:

  • 官方低级 REST 客户端

  • 官方 Java API 客户端

  • 由 Spring Data Elasticsearch提供的ReactiveElasticsearchClient

Spring Boot 提供了专用的“Starter” ,spring-boot-starter-data-elasticsearch.

使用 REST 客户端连接到 Elasticsearch

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

使用 RestClient 连接到 Elasticsearch

如果您在类路径上含有elasticsearch-rest-client,Spring Boot 将自动配置并注册一个RestClientbean。除了前面描述的属性之外,要进行RestClient微调,您还可以注册任意数量的 Bean 以实现RestClientBuilderCustomizer更高级的自定义。要完全控制客户端的配置,请定义一个RestClientBuilderbean。

此外,如果elasticsearch-rest-client-sniffer位于类路径上,Sniffer会自动配置为自动从正在运行的 Elasticsearch 集群中发现节点并将它们设置在RestClientbean 上。您可以进一步调整Sniffer配置方式,如以下示例所示:

spring.elasticsearch.restclient.sniffer.interval=10m
spring.elasticsearch.restclient.sniffer.delay-after-failure=30s

使用 ElasticsearchClient 连接到 Elasticsearch

如果co.elastic.clients:elasticsearch-java位于类路径上,Spring Boot 将自动配置并注册一个ElasticsearchClientbean。

ElasticsearchClient使用的传输取决于前面描述的RestClient。因此,前面描述的属性可用于配置ElasticsearchClient. 此外,您可以定义一个RestClientOptionsbean 来进一步控制传输的行为。

使用 ReactiveElasticsearchClient 连接到 Elasticsearch

ReactiveElasticsearchclient使用的传输取决于前面描述的RestClient。因此,前面描述的属性可用于配置ReactiveElasticsearchClient. 此外,您可以定义一个RestClientOptionsbean 来进一步控制传输的行为。

使用 Spring Data 连接到 Elasticsearch

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

@Component
public class MyBean {
​
    private final ElasticsearchTemplate template;
​
    public MyBean(ElasticsearchTemplate template) {
        this.template = template;
    }
​
    // ...
​
}

Spring Data Elasticsearch 存储库

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

事实上,Spring Data JPA 和 Spring Data Elasticsearch 共享相同的公共基础设施。您可以采用前面的 JPA 示例,假设City现在是 Elasticsearch @Document类而不是 JPA @Entity,它的工作方式相同。

Spring Boot 使用ElasticsearchRestTemplate或ReactiveElasticsearchTemplatebeans支持经典和反应式 Elasticsearch 存储库。如果存在所需的依赖项,这些 bean 很可能是由 Spring Boot 自动配置的。

如果您希望使用自己的模板来支持 Elasticsearch 存储库,则可以添加您自己的ElasticsearchRestTemplate或ElasticsearchOperations @Bean,只要其名称为"elasticsearchTemplate"。同样适用于ReactiveElasticsearchTemplate和ReactiveElasticsearchOperations以及 bean 名称"reactiveElasticsearchTemplate"。

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

spring.data.elasticsearch.repositories.enabled=false

9.2.5. Cassandra

连接到卡桑德拉

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

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

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

spring.cassandra.keyspace-name=mykeyspace
spring.cassandra.contact-points=cassandrahost1,cassandrahost2
spring.cassandra.local-datacenter=datacenter1

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

通过设置属性,可以将自动配置CqlSession配置为使用 SSL 与服务器进行通信,如下例所示:

spring.cassandra.keyspace-name=mykeyspace
spring.cassandra.contact-points=cassandrahost1,cassandrahost2
spring.cassandra.local-datacenter=datacenter1
spring.cassandra.ssl.enabled=true
spring.cassandra.keyspace-name=mykeyspace
spring.cassandra.contact-points=cassandrahost1,cassandrahost2
spring.cassandra.local-datacenter=datacenter1
spring.cassandra.ssl.bundle=example

Cassandra 驱动程序有自己的配置基础架构,可在类路径的根目录加载 application.conf。

Spring Boot 默认情况下不会查找此类文件,但可以使用spring.cassandra.config加载该文件。如果某个属性同时存在于 spring.cassandra.* 和配置文件中,则 spring.cassandra.*中的值优先。

对于更高级的驱动程序自定义,您可以注册任意数量的实现DriverConfigLoaderBuilderCustomizer 的 bean。可以使用 CqlSessionBuilderCustomizer 类型的 bean 来自定义 CqlSession。

如果您用来CqlSessionBuilder创建多个CqlSessionbean,请记住构建器是可变的,因此请确保为每个会话注入一个新的副本。

以下代码清单显示了如何注入 Cassandra bean:

@Component
public class MyBean {
​
    private final CassandraTemplate template;
​
    public MyBean(CassandraTemplate template) {
        this.template = template;
    }
​
    // ...
​
}

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

Spring Data Cassandra 存储库

Spring Data 包括对 Cassandra 的基本存储库支持。目前,这比前面讨论的 JPA 存储库更加有限,并且需要@Query带注释的查找器方法。

9.2.6. Couchbase

连接到 Couchbase

spring.couchbase.connection-string=couchbase://192.168.1.123
spring.couchbase.username=user
spring.couchbase.password=secret
spring.couchbase.env.timeouts.connect=3s
spring.couchbase.env.ssl.bundle=example

检查spring.couchbase.env.*属性以获取更多详细信息。为了更好地控制,可以使用一种或多种ClusterEnvironmentBuilderCustomizerbean。

Spring Data Couchbase 存储库

Spring Data 包括对 Couchbase 的存储库支持。

您可以像注入任何其他 Spring Bean 一样注入自动配置的CouchbaseTemplate实例,前提是有可用的CouchbaseClientFactory Bean。当 Cluster可用时(如上所述)并且已指定存储桶名称,就会发生这种情况:

spring.data.couchbase.bucket-name=my-bucket

以下示例展示了如何注入CouchbaseTemplateBean:

@Component
public class MyBean {
​
    private final CouchbaseTemplate template;
​
    public MyBean(CouchbaseTemplate template) {
        this.template = template;
    }
​
    // ...
​
}

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

  • 名字为couchbaseMappingContext的CouchbaseMappingContext @Bean.

  • 名字为couchbaseCustomConversions的CustomConversions @Bean

  • 名字为couchbaseTemplate的CouchbaseTemplate @Bean

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

@Configuration(proxyBeanMethods = false)
public class MyCouchbaseConfiguration {
​
    @Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS)
    public CouchbaseCustomConversions myCustomConversions() {
        return new CouchbaseCustomConversions(Arrays.asList(new MyConverter()));
    }
​
}

9.2.7. LDAP

连接到 LDAP 服务器

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

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

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

LdapContextSource是根据这些设置自动配置的。如果DirContextAuthenticationStrategybean 可用,它将与自动配置的LdapContextSource关联. 如果您需要自定义它,例如使用 PooledContextSource,您仍然可以注入自动配置的LdapContextSource. 确保将您的自定义ContextSource标记为@Primary,以便自动配置LdapTemplate使用它。

Spring Data LDAP 存储库

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

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

@Component
public class MyBean {
​
    private final LdapTemplate template;
​
    public MyBean(LdapTemplate template) {
        this.template = template;
    }
​
    // ...
​
}

嵌入式内存 LDAP 服务器

spring.ldap.embedded.base-dn=dc=spring,dc=io

可以定义多个基本 dn 值,但是,由于可分辨名称通常包含逗号,因此必须使用正确的符号来定义它们。在 yaml 文件中,您可以使用 yaml 列表表示法。在属性文件中,您必须包含索引作为属性名称的一部分:

spring.ldap.embedded.base-dn[0]=dc=spring,dc=io spring.ldap.embedded.base-dn[1]=dc=vmware,dc=com

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

如果类路径上有一个schema.ldif文件,它将用于初始化服务器。如果要从不同的资源加载初始化脚本,也可以使用spring.ldap.embedded.ldif属性。

默认情况下,使用标准架构来验证LDIF文件。您可以通过设置spring.ldap.embedded.validation.enabled属性来完全关闭验证。如果您有自定义属性,则可以用来spring.ldap.embedded.validation.schema定义自定义属性类型或对象类。

9.2.8. InfluxDB

连接到 InfluxDB

Spring Boot 会自动配置一个InfluxDB实例,前提是influxdb-java客户端位于类路径上并且数据库的 URL 使用spring.influx.url设置.

如果连接到 InfluxDB 需要用户名和密码,您可以相应地设置spring.influx.user和spring.influx.password属性。

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

如果您需要对配置进行更多控制,请考虑注册InfluxDbCustomizerbean。

中配置自定义 SSL 信任材料并将其应用到RedisConnectionFactory如以下示例:

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

中配置自定义 SSL 信任材料并将其应用到MongoClient以下示例中:

有关完整详细信息,请参阅。

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

有关 Spring Data MongoDB 的完整详细信息,包括其丰富的对象映射技术,请参阅其。

是一个开源 NoSQL 图形数据库,它使用通过一流关系连接的丰富节点数据模型,比传统 RDBMS 方法更适合互联大数据。Spring Boot 为使用 Neo4j 提供了多种便利,包括spring-boot-starter-data-neo4j“Starter”。

Spring Data 包括对 Neo4j 的存储库支持。有关 Spring Data Neo4j 的完整详细信息,请参阅。

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

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

Elasticsearch 提供了两个不同的 REST 客户端,可用于查询集群:org.elasticsearch.client:elasticsearch-rest-client模块中的和co.elastic.clients:elasticsearch-java模块中的。此外,Spring Boot 还为org.springframework.data:spring-data-elasticsearch模块中的响应式客户端提供支持。默认情况下,客户端将定位localhost:9200. 您可以使用spring.elasticsearch.*属性来进一步调整客户端的配置方式,如以下示例所示:

用于ReactiveElasticsearchClient以反应方式查询 Elasticsearch 实例。如果类路径上有 Spring Data Elasticsearch 和 Reactor,Spring Boot 将自动配置并注册一个ReactiveElasticsearchClient.

在存在spring-data-elasticsearch和Reactor的情况下,Spring Boot 还可以自动配置和ReactiveElasticsearchTemplate beans。它们是其他 REST 客户端的响应式等价物。

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

有关 Spring Data Elasticsearch 的完整详细信息,请参阅。

是一种开源分布式数据库管理系统,旨在处理跨多个商用服务器的大量数据。Spring Boot 为 Cassandra 提供自动配置,并在其之上由提供抽象。有一个spring-boot-starter-data-cassandra“Starter”可以方便地收集依赖项。

中配置自定义 SSL 信任材料并将其应用到CqlSession以下示例中:

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

有关 Spring Data Cassandra 的完整详细信息,请参阅。

是一个开源、分布式、多模型、面向文档的 NoSQL 数据库,针对交互式应用程序进行了优化。Spring Boot 为 Couchbase 提供自动配置,并在其之上由提供抽象。有“ spring-boot-starter-data-couchbaseStarters spring-boot-starter-data-couchbase-reactive”可以方便地收集依赖项。

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

还可以自定义一些设置ClusterEnvironment。例如,以下配置更改打开新Bucket的超时时间并通过引用已配置的启用 SSL 支持:

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

有关 Spring Data Couchbase 的完整详细信息,请参阅。

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

提供。有一个spring-boot-starter-data-ldap“Starter”可以方便地收集依赖项。

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

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

自动配置内存中 LDAP 服务器。要配置服务器,请添加依赖项com.unboundid:unboundid-ldapsdk并声明spring.ldap.embedded.base-dn属性,如下所示:

InfluxDB 的自动配置已被弃用,并计划在 Spring Boot 3.4 中删除,以支持提供自己的 Spring Boot 集成的

是一款开源时间序列数据库,专为操作监控、应用程序指标、物联网传感器数据和实时分析等领域的时间序列数据的快速、高可用性存储和检索而优化。

Cassandra
Couchbase
Elasticsearch
GemFire
Geode
LDAP
MongoDB
Neo4J
Redis
Spring Boot for Apache Geode
自动配置
请参阅spring.io/projects/spring-data
新 InfluxDB Java 客户端。
Redis
Spring Boot 为Lettuce
Jedis客户端库以及
Spring Data Redis
Lettuce
可以在SSL 捆绑包
MongoDB
可以在SSL 捆绑包
MongoOperationsJavadoc
自动配置包。
参考文档
Neo4j
参考文档
自动配置包。
Elasticsearch
低级客户端
Java API 客户端
Spring Data Elasticsearch
ReactiveElasticsearchClient
自动配置包。
参考文档
Cassandra
Spring Data Cassandra
可以在SSL 捆绑包
自动配置包。
参考文档
Couchbase
Spring Data Couchbase
连接字符串
SSL 捆绑包
自动配置包。
参考文档
LDAP
UnboundID 的
LDAP 抽象由Spring Data LDAP
自动配置包。
参考文档
出于测试目的,Spring Boot 支持从UnboundID
新 InfluxDB Java 客户端。
InfluxDB