我创建了一个 java/spring 库,提供可重用的功能,例如调用 ldap 服务来检查用户是否通过给定目录服务的身份验证。
该库正在运行,我可以通过 maven 将其集成到任何给定的 java 项目中,或者将 api 与其余部分一起使用。
我有两个问题:
- 我想调用图书馆服务
public boolean authenticateUser(String login, String password)
异步。我是否应该在库中对该服务进行异步编码,还是应该由使用应用程序进行异步调用? - 因为它是一个 spring(引导)使用的库,所以我定义了一个专用的
ThreadPoolTaskExecutor
图书馆内的 bean 。这是一个好主意(专用ThreadPoolTaskExecutor
)还是消费应用程序应该定义ThreadPoolExecutor
最佳答案
您应该提供两个同步版本和一个异步版本,以便客户端可以决定。
这应该可以由客户端配置。因此,您的库必须提供配置线程池的功能。
也许将您的库实现为 Spring Boot 自动配置启动器可能是一个想法:
关于Java/Spring 库服务异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55949889/