Welcome

Spring Uygulamalarında Kafka ile Transaction Yönetimi

Kafka’nın transaction kabiliyeti read-process-write örüntüsüne sahip senaryolar için gayet uygundur. Spring Boot ve Spring Kafka ile çalışırken Kafka’nın transaction kabiliyetini devreye almak için aşağıdaki property tanımını yapmak yeterlidir. transaction-id-prefix tanımı sayesinde Spring Boot Kafka AutoConfiguration’ı bir KafkaTransactionManager bean’i tanımlamaktadır. transaction-id-prefix tanımının yanı sıra Kafka transaction’ları ile çalışırken aşağıdaki property tanımlarını yapmak da önem arz etmektedir. […]

Spring Uygulamalarında Redis ile Transaction Yönetimi

Spring Data Redis projesinin “Redis Repositories” özelliği sayesinde domain nesnelerinin herhangi bir extra efor harcamadan “Redis” veritabanında saklanması mümkündür. Redis Repositories’in custom mapping ve secondary index desteği de söz konusudur. Ancak “Redis Transaction”ları ile çalışmaz. Eğer Redis’in transaction kabiliyetini kullanmak ve Redis veritabanı üzerinde gerçekleştirdiğiniz işlemlerin Spring’in transaction senkronizasyonu ile yönetilmesini istiyorsanız ya doğrudan “RedisTemplate”‘i […]

Spring Controller’ların Entegrasyon ve Birim Testleri Nasıl Yapılır?

Spring Application Framework ile çalışırken uygulamaya ait sınıflarımızı yazmanın yanı sıra, ApplicationContext olarak tabir edilen Spring Container konfigürasyonunu gerçekleştirdikten sonra, entegrasyon testlerimizde genel olarak iki veya daha fazla katmanı bir arada testlere tabi tutarız. Örneğin Service ve Repository katmanlarını ApplicationContext’i yaratarak ayağa kaldırır ve servis metot çağrıları sonucu iş mantığının düzgün biçimde implement edilip edilmediğini, […]

Spring Boot Test Ortamı ve Redis

Spring ekosisteminde çalışırken en çok hoşuma giden özelliklerden birisi de entegrasyon testlerini çalıştırırken veri erişim işlemleri ile ilgili işlemleri hafızada çalışan gömülü bir veritabanı (H2 veya Derby) ile kolayca gerçekleştirebilmemizdir. Böylece testleri herhangi bir ortamda – ortamda daha önceden herhangi bir setup yapaya gerek kalmaksızın – rahatlıkla koşturabiliriz. Bu kabiliyet Kafka, Redis gibi NoSQL çözümler […]

Kotlin ve Spring MVC Validations

Kurumsal Java dünyasında pek çok framework ve çözüm, kabiliyetleri ile ilgili metadata tanımlarını Java anotasyonları şeklinde ele almaktadır. Bunlardan birisi de Java Bean Validation spesifikasyonudur. JSR-380 olarak da bilinen bu spesifikasyon ile domain sınıflarındaki validasyon ihtiyaçları Java anotasyonları ile field veya getter metotlar üzerinde tanımlanmaktadır. Çalışma zamanında da uygun bir Validator ile bu sınıflardan yaratılmış […]

Kotlin ve Spring

Kotlin deneyimlerimi paylaşmaya devam ediyorum. Bu yazımızda da Kotlin ile kurumsal yazılım geliştirirken Spring Framework’ün kullanımından bahsedeceğim. Geçen yazımda da belirttiğim gibi Kotlin’in JVM uyumlu bir dil olması sayesinde mevcut Java kütüphanelerini Kotlin projelerimizde de kullanabiliyoruz. Ancak Hibernate örneğinde olduğu gibi Spring ve Spring Boot Framework açısından da, Kotlin’in varyasılan durumda sınıfları ve metotları final […]

Spring Boot ve JSF

Java Server Faces (JSF)’i başarısız bir UI framework olarak nitelediğimi değişik ortamlarda ve yazılarımda belirtmişimdir. Ancak ne yapalım ki JSF sıkça kullanılan bir UI framework olarak karşımıza çıkıyor. Spring ekosisteminde JSF’i Spring çözümleri ile entegre etmeye çalışan arkadaşlardan zaman zaman sorular alıyorum. Spring Boot ile geliştirilen web uygulamalarında UI framework olarak JSF’i kullanmak mümkündür. Spring […]