Spring Boot Dersleri Spring Cache Nasıl Yapılır? Uygulama Örneği

Spring Boot
Spring Dersleri

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.



Tüm Spring UygulamalarıDiğer Spring Proje Örneklerine Ulaşmak için tıklayınız.


Önceki Ders: Thymeleaf Ajax Proje Uygulama Örneği
Spring Boot Dersleri
Sonraki Ders: Spring Boot Uygulaması TimeZone Değiştirmek

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Burak KUTBAY 2010 - 2019
%d blogcu bunu beğendi: