Spring Boot Cache Busting nedir?

Css Js gibi statik resource'lar tarayıcı tarafında cache'lenerek müteakip isteklerde sunucuya erişmeden kullanıcıya hızlıca gösterilebilirler

Geliştirme ortamında bu dosyalarda yapılmış değişikliklerin görüntülenmesini engelleyecektir.Spring boot bu problemi aşmak için cache busting kabiliyeti sunar.

Cache (Önbellek) Nedir?

Cache nedir sorusuna basitçe cevap verecek olursak gelecekte tekrar kullanılmak için bir sunucuda depolanan veridir.

Cache tam olarak nasıl çalışır?

Bir siteyi açtığınızda bütün web sitesi verisi cache olarak toplanır, bir HTML dosyasına dönüştürülür ve tarayıcınızda açılır.

Aynı siteyi bir dahaki açışınızda önbelleğin bir kopyası yüklenecektir. Bu, sunucunun daha hızlı yüklenmesine ve aşırı yük binmemesine yardımcı olur.

Tabii ki, eğer web site güncellendiyse bu işlem en baştan başlayacaktır.

Aklınızdan bulundurmanız gereken iki şeyse ilk olarak bütün web sitelerin cache kullanmadığı, ikincisiyse önbelleğin süresinin dolabileceği veya elle silinebileceğidir.

Cache Neden Önemlidir?

Cache nedir öğrendiğinize göre sırada önemi var. Cache,web sitenin yüklenme hızında önemli bir rol oynamaktadır. Bu, ziyaretçilerinizin web sitenizin yüklenmesi için fazla beklemeyeceğinden web sitenizin daha iyi performans göstermesini sağlayacaktır.

HTTP istekleri için daha az işlem olması daha az bant genişliği kullanılacağı anlamına gelir. Bu, özellikle de sınırlı kaynaklarınız varsa iyi bir şeydir.

Cache Busting’in Devreye Alınması

Devreye almak için application.properties’de ilgili property tanımı yapılmalıdır

src/main/resources/application.properties içerisinde

spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

yukarıdaki kodu dahil edersek css i rahatça kullanabiliriz yani hızlı kullanabiliriz thymeleaf içerisinde veya herhangi bir şablon motorda

Cache Busting’i arka planda gerçekleştiren ResourceUrlEncodingFilter’dır

Spring Boot Thymeleaf ve FreeMarker template engine’leri devreye alındığında bu filter’ı da otomatik aktive eder

JSP veya diğer template engine’ler için ResourceUrlEncodingFilter’ın projeye manuel biçimde dahil edilmesi gerekir

Last updated

Was this helpful?