在现有项目中实现缓存(使用咖啡因缓存)时出现错误。
相同的代码适用于示例应用程序。我知道已经有人问过类似的问题,但对我都没有用。我已经使用这个例子实现了: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] | 键='' | 密钥生成器='' | 缓存管理器='' | 缓存解析器='' | 条件='' | 除非='' | 同步='假'