微服务架构之Spring Boot(五十一)

2022-05-23 15:36:38 浏览数 (1)

31.8.2 Spring数据Couchbase存储库

Spring数据包括Couchbase的存储库支持。

您可以像使用任何其他Spring Bean一样注入自动配置的 CouchbaseTemplate 实例,前提是默认 CouchbaseConfigurer 可用(当您启用

Couchbase支持时会发生这种情况,如前所述)。

以下示例显示了如何注入Couchbase bean:

@Component

public class MyBean {

private final CouchbaseTemplate template;

@Autowired

public MyBean(CouchbaseTemplate template) {

this.template = template;

}

// ...

}

您可以在自己的配置中定义一些beans来覆盖自动配置提供的内容:

CouchbaseTemplate @Bean ,名称为 couchbaseTemplate 。

IndexManager @Bean ,名称为 couchbaseIndexManager 。

CustomConversions @Bean ,名称为 couchbaseCustomConversions 。

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

器,如下所示:

@Configuration

public class SomeConfiguration {

@Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS)

public CustomConversions myCustomConversions() {

return new CustomConversions(...);

}

// ...

}

如果您想完全绕过Spring Data Couchbase的自动配置,请提供您自己

的 org.springframework.data.couchbase.config.AbstractCouchbaseDataConfiguration 实现。

31.9 LDAP

LDAP(轻量级目录访问协议)是一种开放的,与供应商无关的行业标准应用程序协议,用于通过IP网络访问和维护分布式目录信息服务。

Spring Boot为任何兼容的LDAP服务器提供自动配置,并为UnboundID支持嵌入式内存中LDAP服务器 。

LDAP抽象由 Spring数据LDAP提供。有一个 spring-boot-starter-data-ldap “Starter”用于以方便的方式收集依赖项。

31.9.1连接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 。如果您需要自定义它,例如使用 PooledContextSource ,您仍然可以注入自动配置

的 LdapContextSource 。请务必将自定义的 ContextSource 标记为 @Primary ,以便自动配置的 LdapTemplate 使用它。

31.9.2 Spring数据LDAP存储库

Spring数据包括LDAP的存储库支持。有关Spring数据LDAP的完整详细信息,请参阅 参考文档。

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

@Component

public class MyBean {

private final LdapTemplate template;

@Autowired

public MyBean(LdapTemplate template) {

this.template = template;

}

// ...

}

31.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列表表示法:

spring.ldap.embedded.base-dn:

- dc=spring,dc=io

- dc=pivotal,dc=io

在属性文件中,必须包含索引作为属性名称的一部分:

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

spring.ldap.embedded.base-dn[1]=dc=pivotal,dc=io

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

如果类路径上有 schema.ldif 文件,则用于初始化服务器。如果要从其他资源加载初始化脚本,还可以使用 spring.ldap.embedded.ldif 属

性。

默认情况下,标准模式用于验证 LDIF 文件。您可以通过设置 spring.ldap.embedded.validation.enabled 属性完全关闭验证。如果您有自

定义属性,则可以使用 spring.ldap.embedded.validation.schema 来定义自定义属性类型或对象类。

0 人点赞