小编nai*_*xer的帖子

使 Mono 的缓存值失效的最佳方法是什么?

我将尝试尽可能简单地解释我的用例。在我的应用程序中调用外部 Web 服务之前,我使用 Spring Webflux WebClient 从令牌提供者请求 oauth 访问令牌,并且我正在缓存该值,以便下次需要时重用它。每当请求失败并出现错误代码 401 时,我想使缓存无效并使用新令牌重试。

一切工作正常,接受我不确定 Mono 的缓存失效。

如果缓存需要失效,存储在布尔变量中是个好主意吗?订阅 auth Mono 时重试时,无效缓存谓词将为 true,这将使缓存无效并完成新请求。

还有其他想法吗?

示例代码:

@Component
public class AccessTokenService {

    private final WebClient accessTokenClient;
    private final Mono<Token> accessTokenMono;
    private final AtomicBoolean cacheInvalidated = new AtomicBoolean();

    public AccessTokenService() {
        accessTokenClient = WebClient.builder()
                .baseUrl("example-token-uri")
                .build();

        accessTokenMono = initAccessTokenMono();
    }

    private Mono<Token> initAccessTokenMono() {
        return accessTokenClient.post()
                .uri(uriBuilder -> uriBuilder
                        // Some credentials as parameters
                        .build())
                .retrieve()
                .bodyToMono(Token.class)
                // Always set cache invalidated to false when we get …
Run Code Online (Sandbox Code Playgroud)

spring reactor netty spring-webflux

5
推荐指数
1
解决办法
924
查看次数

如何在AppCompat 23中更改ActionBar标题的字体

我想知道如何更改ActionBar的字体.我正在使用Theme AppCompat 23并尝试使用"typeface",尝试使用"titleTextStyle",但没有任何反应,我无法解释为什么......我试图做一个文本样式并改变了字体但是仍然没有结果.我唯一能做的就是用"textColorPrimary"改变标题的颜色.我也无法在规范中找到解决方案.有人能给我一个提示怎么做吗?

fonts android title android-appcompat android-actionbar

3
推荐指数
1
解决办法
3032
查看次数