以下のようにSpringキャッシュを実装しました
@Component
public class KPCacheExample {
private static final Logger LOG = LoggerFactory.getLogger(KPCacheExample.class);
@CachePut(value="kpCache")
public String saveCache(String userName, String password){
LOG.info("Called saveCache");
return userName;
}
@Cacheable(value="kpCache")
public String getCache(String userName, String password){
LOG.info("Called getCache");
return "kp";
}
}
および Java 構成ファイル
@Configuration
@ComponentScan(basePackages={"com.kp"})
public class GuavaCacheConfiguration {
@Bean
public CacheManager cacheManager() {
GuavaCacheManager guavaCacheManager = new GuavaCacheManager("kpCache");
guavaCacheManager.setCacheBuilder(CacheBuilder.newBuilder().expireAfterAccess(2000, TimeUnit.MILLISECONDS).removalListener(new KPRemovalListener()));
return guavaCacheManager;
}
}
デフォルトでは、スプリングはキャッシュ インターフェイスで put メソッドを使用して、キャッシュ内の値を更新/配置します。キャッシュが見つからない場合、または一意のユーザー名とパスワードを持つメソッドへの最初のリクエストが null を返し、そのユーザー名とパスワードへの後続のリクエストが返されるように、スプリングに putifabsent メソッドを強制的に使用させるにはどうすればよいですか?ユーザー名を返す必要があります。