Spring Boot Dersleri Spring Cache Nasıl Yapılır? Uygulama Örneği
Spring Boot Dersleri‘ne devam ediyoruz.
Spring Boot uygulamalarımızda caching yeteneği kazandırmak için yapılması gerekenlerden bahsedeğim. Örnek bir uygulama yaparak Spring Boot Caching’i kavramaya çalışacağız. Spring Boot uygulamamızın performansını caching yaparak arttırmak mümkün. Çok fazla sorgulama yapılan uygulamalarda sorgu caching’i yaparak önemli bir performans artışı sağlanabilmektedir.
Spring Boot uygulaması yapalım.
Spring Boot uygulamasına Spring Caching özelliği kazandırmak için maven projesi yapıyorsak bağımlılığımız aşağıdaki gibi olacaktır.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.java4s</groupId> <artifactId>SpringBootCache</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> </dependencies> <properties> <java.version>1.8</java.version> </properties> </project>
Maven bağımlılığımıza 2.1.3 sürümünü yüklemiş olduk.
Şimdi üye entitymizi oluşturalım. Yapacağımız uygulama Uyenin ad ve soyad bilgilerini tutacak.
public class Uye { private int id; private String ad; private String soyad; public Uye(int id, String ad, String soyad) { this.id = id; this.ad = ad; this.soyad = soyad; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getAd() { return ad; } public void setAd(String ad) { this.ad = ad; } public String getSoyad() { return soyad; } public void setSoyad(String soyad) { this.soyad = soyad; } }
Controllerimizi oluşturalım.
@RestController public class UyeController{ @RequestMapping("/getUye") @Cacheable(value="cacheGetUye") public List uyeBilgi() { List uyeList = Arrays.asList( new Customer(1,"Ahmet","Veli"), new Customer(1,"Mehmet","Ali")); return uyeList; } }
Controllerimizin içerisine verilerimiz bulunmakta ilgili uyeBilgi metodumuzdan çıkacak sonucun caching özelliği verebilmek için caching @Cacheable anotasyonu ile işaretlemiş oluyoruz.
Uygulamızı çalıştırmak için main methodumuzu yazalım.
@SpringBootApplication @EnableCaching public class SpringBootApp { public static void main(String[] args) { SpringApplication.run(SpringBootApp.class, args); } }
Main methodumuza @EnableCaching yazarak uygulamımıza bu özelliği kazandırmış oluyoruz. Uygulamamızdan rest erişimine açık olan üye bilgilerine her defasında erişiminde cachelenmiş olan verilerden getirecektir.
İstediğimiz zaman bu özelliği devre dışı bırakmak istersek Caching ile işaretlediğimiz tüm anotasyonları silmemize gerek yok. Spring Boot uygulamamızın application.properties dosyasına;
spring.cache.type=none
yazmak yeterli olacaktır.
Önceki Ders: Thymeleaf Ajax Proje Uygulama Örneği |
Spring Boot Dersleri |
Sonraki Ders: Spring Boot Uygulaması TimeZone Değiştirmek |
No Comment! Be the first one.