public interface RefreshTokenReactiveRepository extends ReactiveCrudRepository<RefreshToken, Long> {
Mono<RefreshToken> findByValue(String value);
}
下一个metod在TokenService类中。
public Mono<TokenPair> exchangeRefreshToken(String refreshTokenValue) {
return refreshTokenReactiveRepository.findByValue(refreshTokenValue)
.zipWhen(
previousRefreshToken ->
refreshTokenReactiveRepository.deleteById(previousRefreshToken.getId())
.then(Mono.just("")),
(previousRefreshToken, deleteResult) -> previousRefreshToken
)
.map(RefreshToken::getAccount)
.flatMap(this::generateTokenPair);
}
refreshTokenReactiveRepository.deleteById(previousRefreshToken.getId())
.then(Mono.just(""))
如果不需要deletebyid
方法的返回值,就不需要使用zip
;在这里,您只需要从存储库中删除前面的令牌,如果它在那里,然后返回它。像这样的事情应该会奏效:
public Mono<TokenPair> exchangeRefreshToken(String refreshTokenValue) {
return refreshTokenReactiveRepository.findByValue(refreshTokenValue)
.flatMap(previousRefreshToken ->
refreshTokenReactiveRepository
.deleteById(previousRefreshToken.getId())
.thenReturn(previousRefreshToken.getAccount())
)
.flatMap(this::generateTokenPair);
}
您可以通过在存储库中添加deletebyvalue
方法来简化此操作;您将删除datastore中的令牌,并在单个数据库查询中将其取回。
我一辈子都搞不懂这件事。我需要第二双眼睛。。。或者更好的大脑。我正在尝试让这个“Hello Triangle”python示例正常工作。我一直在翻译c教程中的内容。然而,无论我做什么,我总是会遇到这个错误。 我的代码如下。我在Mac上运行,所以你会注意到其中有些东西可能不是PC所需要的。在glDrawArrays出现之前,一切都正常。我知道C版openGL与使用pyOpenGL的python之间的
在“普通的”MongoDB中,对DB执行写入操作的方法(如.insertone()或.deleteOne())将分别返回或。这些对象将返回的布尔值和(如果适用)。这允许我们确保写操作成功。 但是,通俗地说,返回的是void: MongoOperations.Class 那么问题是,我们如何检索得到的和对象? 正在使用pom依赖项
我正在我的项目中使用spring webflux。我的controller类调用返回Mono或Flux的服务类方法。 我正在尝试为我的服务类编写单元测试。我不确定如何为返回mono/flux的方法编写单元测试。我查看的大多数文章都建议我使用WebClientTest。但重点是,我在这里测试我的服务类。当我通过模拟服务类方法测试我的web层(控制器类)时,我使用了WebclientTest。 对如何
本文向大家介绍Android实现返回键操作思路,包括了Android实现返回键操作思路的使用技巧和注意事项,需要的朋友参考一下 记录用户点击的操作历史,使用栈数据结构,频繁的操作栈顶(添加,获取,删除),使用LinkedList 捕获用户的返回键操作,响应返回键,返回上一个界面 MainActivity.java MiddleManager.java 以上就是本文的全部内容,希望对大家的学习有所帮
我一直在使用Spring Cache抽象和ehCache。我在目标方法上使用@Cacheable注释,如下所示: 注意:如果我没有在@cacheable注释中指定“key”,那么它可以工作。 有什么我忘了说明的吗?配置?注释?