此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data LDAP 3.4.0! |
用法
要访问存储在 LDAP 兼容目录中的域实体,您可以使用我们复杂的存储库支持,从而大大简化实施。 为此,请为您的仓库创建一个接口,如下例所示:
示例 1.示例 Person 实体
@Entry(objectClasses = { "person", "top" }, base="ou=someOu")
public class Person {
@Id
private Name dn;
@Attribute(name="cn")
@DnAttribute(value="cn", index=1)
private String fullName;
@Attribute(name="firstName")
private String firstName;
// No @Attribute annotation means this is bound to the LDAP attribute
// with the same value
private String firstName;
@DnAttribute(value="ou", index=0)
@Transient
private String company;
@Transient
private String someUnmappedField;
// ...more attributes below
}
我们这里有一个简单的 domain 对象。
请注意,它有一个名为 type 的属性。
使用该域对象,我们可以通过为其定义接口来创建存储库来持久保存该类型的对象,如下所示:dn
Name
示例 2.用于持久保存实体的基本存储库界面
Person
public interface PersonRepository extends CrudRepository<Person, Long> {
// additional custom finder methods go here
}
由于我们的域存储库扩展了 ,因此它为您提供了 CRUD 操作以及访问实体的方法。
使用存储库实例是一个依赖关系问题,将其注入到客户端中。CrudRepository
例 3.访问 Person 实体
@ExtendWith(SpringExtension.class)
@ContextConfiguration
class PersonRepositoryTests {
@Autowired PersonRepository repository;
@Test
void readAll() {
List<Person> persons = repository.findAll();
assertThat(persons.isEmpty(), is(false));
}
}
该示例使用 Spring 的单元测试支持创建一个应用程序上下文,它将对测试用例执行基于 Comments 的依赖项注入。 在测试方法中,我们使用存储库来查询数据存储。