Baharda Guava Önbelleği kurmanın tam bir örneği. Guava'yı Ehcache yerine kullandım çünkü bu biraz daha hafif ve yapılandırma bana daha açık geldi.
Maven Bağımlılıklarını İçe Aktar
Bu bağımlılıkları maven pom dosyanıza ekleyin ve temiz ve paketleri çalıştırın. Bu dosyalar, CacheBuilder'da kullanılmak üzere Guava dep ve Spring yardımcı yöntemleridir.
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
Önbelleği Yapılandırın
Java yapılandırmasını kullanarak önbelleği yapılandırmak için bir CacheConfig dosyası oluşturmanız gerekir.
@Configuration
@EnableCaching
public class CacheConfig {
public final static String CACHE_ONE = "cacheOne";
public final static String CACHE_TWO = "cacheTwo";
@Bean
public Cache cacheOne() {
return new GuavaCache(CACHE_ONE, CacheBuilder.newBuilder()
.expireAfterWrite(60, TimeUnit.MINUTES)
.build());
}
@Bean
public Cache cacheTwo() {
return new GuavaCache(CACHE_TWO, CacheBuilder.newBuilder()
.expireAfterWrite(60, TimeUnit.SECONDS)
.build());
}
}
Önbelleğe alınacak yönteme açıklama ekleyin
@Cacheable açıklamasını ekleyin ve önbellek adını girin.
@Service
public class CachedService extends WebServiceGatewaySupport implements CachedService {
@Inject
private RestTemplate restTemplate;
@Cacheable(CacheConfig.CACHE_ONE)
public String getCached() {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> reqEntity = new HttpEntity<>("url", headers);
ResponseEntity<String> response;
String url = "url";
response = restTemplate.exchange(
url,
HttpMethod.GET, reqEntity, String.class);
return response.getBody();
}
}
Ek açıklamalı ekran görüntüleriyle burada daha eksiksiz bir örnek görebilirsiniz: İlkbaharda Guava Önbelleği