1

在现有项目中实现缓存(使用咖啡因缓存)时出现错误。

相同的代码适用于示例应用程序。我知道已经有人问过类似的问题,但对我都没有用。我已经使用这个例子实现了:https ://www.javadevjournal.com/spring-boot/spring-boot-with-caffeine-cache/

下面是代码片段: EventListner 类:

MyEventListener.java:

 @Slf4j
    @Component
    @AllArgsConstructor
    class MyEventListener {
         @Autowired
         private final MySecurityServiceClient mySecurityServiceClient;
.
....some code
.
ResponseEntity<TokenResponse> tokenResponseResponseEntity =mySecurityServiceClient.getUserToken();
}

MySecurityServiceClient.java:

public interface MySecurityServiceClient {
    public ResponseEntity getUserToken();

}

实现类DefaultMySecurityServiceClient.java 的接口:

    @Component
    @Slf4j
    @AllArgsConstructor
    public class DefaultMySecurityServiceClient  implements MySecurityServiceClient{
     .
     ...some code
     .
    @Override
    @Cacheable("userToken")
    public ResponseEntity getUserToken() {
    .
    .
    .
 return responseEntity;
}

}

应用程序属性

spring.cache.cache-names=userToken
spring.cache.caffeine.spec=expireAfterWrite=120s

另外,我使用的是 Caffeine Cache Version = 2.8.5

Spring Boot 版本= 2.3.5.RELEASE

错误:

java.lang.IllegalArgumentException:找不到缓存名为 'userToken' 的 Builder [public org.springframework.http.ResponseEntity xx.xx.xx.xx.xx.DefaultMySecurityServiceClient.getUserToken()] 缓存 = [userToken] | 键='' | 密钥生成器='' | 缓存管理器='' | 缓存解析器='' | 条件='' | 除非='' | 同步='假'

4

0 回答 0