我有一个Spring Boot应用程序,它充当服务器的客户端。身份验证后,它从服务器请求数据。服务器使用基于令牌的身份验证,每15分钟更改一次令牌。什么是我的客户端应用程序获取新令牌的最有效,最清洁的方式?默认情况下,我使用多线程,并且在主应用程序的后台,我每15分钟请求一次新令牌,但这并不高效。那么是否有其他方法(例如反应式编程等)来做到这一点? 请注意,我的应用程序需要一次向服务器发送大量请求,因此我每次发送请求时都无法检查获取令牌的时间。
答案 0 :(得分:1)
我将if #available(iOS 13.0, *) {
searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "My PlaceHolder", attributes: [NSAttributedString.Key.foregroundColor: UIColor.white.withAlphaComponent(0.80)])
}
与@Retryable
或RetryOperationsInterceptor
一起使用。
这是怎么回事:
我们有一个ExceptionClassifierRetryPolicy
单身人士持有身份验证令牌:
@Component
使实际上从服务器请求数据的@Component
public class AuthenticationHolder {
private String token;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}
不知道身份验证过程。它仅引用您的@Component
单例,并在该方法中尝试请求数据(显然用AuthenticationHolder
注释,它检索令牌并发出请求。如果失败并返回错误的响应代码,从服务器,使其抛出异常,然后重试。在两次重试之间,使您的@Retryable
更新身份验证令牌。