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 来定义自定义属性类型或对象类。