Java 如何处理LDAP连接?
我正在尝试实现以下内容: 我有一个导入器类,它注册所谓的Java 如何处理LDAP连接?,java,ldap,Java,Ldap,我正在尝试实现以下内容: 我有一个导入器类,它注册所谓的Processors,然后通过迭代并调用execute来执行它们(Processor是一个接口,包含一个方法void execute()) 这些处理器所做的是连接到LDAP并执行某些任务,例如检索人员列表并将其存储到数据库中,或者读取某些权限并将其映射到组 这一切都很顺利。。。只是我不知道如何处理LDAP连接 以下是一些想法: 在构造函数中初始化连接(并将其分配给字段),并提供一个dispose()`方法,该方法关闭连接或 不要在构造函数中
Processor
s,然后通过迭代并调用execute来执行它们(Processor
是一个接口,包含一个方法void execute()
)
这些处理器所做的是连接到LDAP并执行某些任务,例如检索人员列表并将其存储到数据库中,或者读取某些权限并将其映射到组
这一切都很顺利。。。只是我不知道如何处理LDAP连接
以下是一些想法:
execute()
方法或中初始化并关闭它在其他地方构建它并将其注入到应用程序中 如果您没有通过CDDI提供依赖注入的JEE6,那么您可以使用Spring框架作为解决方案 它有两个好处
使用作为必需参数的策略方法处理与LDAP服务器的连接。这将分离和隔离代码。对于这项工作,您应该更喜欢使用,SDK支持创建连接的功能,因此不需要使用“模拟”或“假”连接。此外,您还可以查看博客帖子。#2 imo,让导入者尽可能简单,不要让连接打开的时间超过需要的时间。+1我已经使用了Unbounded LDAP SDK以及InMemory DS-太棒了!你能详细介绍一下战略模式部分吗?我知道并经常使用策略模式,但不知道如何在这里应用它。只是一个想法。创建一个ServerConnectionStrategy接口,该接口定义必须由服务提供者提供的服务(其中服务提供者是一组提供必要LDAP服务的类)。该策略定义了在其他地方实现的服务。我正在考虑使用“execute()”方法来使用该模式。我不喜欢不使用任何参数来表示其函数的方法——多态性可能会走得太远,使代码变得脆弱。如果execute()接受一个策略参数,那么它的作用就更明确了。我还没有真正想清楚这一点。