Ana Sayfa

  • Spring Boot Log (Lombok)

    Lombok kullandığımız projelerde @Slf4j annotation’ı kullanarak loglama işlemi yapabiliriz. Bu alan arka planda aşağıdaki Logger nesnesini oluşturur. private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class); src/main/resources altında logback-spring.xml dosyasını oluştur. Bu dosyada <appender> tanımlamalarını yap. log.info(“test log”); dediğimizde dosyaya yazdırma yapabilecektir. Farklı dosyalara log yazabilmek için aşağıdaki tanımlamalar yapılır. Bunlar logback-spring.xml içindeki logger name alanlarıdır. private

    Tamamını Oku

  • SAGA

    SAGA, microservice mimarisinde kullanılan ve birden çok microservice arasındaki dağıtık transactionları yönetmek için kullanılan bir tasarım kalıbıdır. 1987 yılında Princeton Üniversitesi Bilgisayar Bilimleri departmanında yazılan bir makale ile duyurulmuştur. Transaction’ın her adımı, bir hata oluşması durumunda geri alınabilecek ayrı ayrı eylemler olarak uygulanır. Bir uygulamada sipariş, envanter takibi, satış ve kargo alanlarının olduğunu düşünelim. Kargo

    Tamamını Oku

  • Elasticsearch ve Kibana

    Elasticsearch açık kaynaklı bir arama motorudur. Arka planda Apache Lucene arama motorunu çalıştırır. Apache Lucene, yüksek performanslı bir metin arama motorudur. Elasticsearch, verileri dokümanlar (documents) kullanarak işler. Bu dokümanlar, verilerin mantıksal bir şekilde gruplandırılmasını sağlar. Elasticsearch bu dokümanlara hızlıca erişir ve verileri aranabilir hale getirir. Elasticsearch, Logstash ve Kibana ile beraber ELK yığınının parçalarından biridir.

    Tamamını Oku

  • Docker

    Docker kullanabilmek için öncelikle bilgisayarımıza docker’ı indirip kuruyoruz. https://docs.docker.com/get-docker/ adresine giderek işletim sistemine uygun paketi indirip kuralım. Spring Boot uygulamasını Docker Container İçinde Çalıştırma Spring intializer ile temel bir proje oluşturalım. Dependency olarak data jpa, web, postgresql ve lombok ekleyelim. Proje adı docker-test. Rest Controller ekleyerek bir api oluşturalım ve buna ulaşmaya çalışalım. bir entity

    Tamamını Oku

  • Concurrency in Java – Bilinmesi Gerekenler

    Synchronized anahtar kelimesi bir method üzerinde kullanıldığında bu methodu çağıran nesne (this) üzerinde bir kilit oluşturur. Bu nedenle bu nesne üzerinde synchronized anahtar kelimesine sahip tüm methodlar bu kilidi paylaşır. Synchronized anahtar kelimesi bir nesneyi(instance) kilitler. Bir nesnenin birden fazla synchronized methodu varsa, birden fazla thread aynı anda bu nesnenin synchronized methodlarına erişemezler. Bir thread

    Tamamını Oku

  • Transactions in Spring Boot

    Tamamını Oku

  • Spring Boot Custom Validation

    Validation işlemine bir önceki form validation yazısında anlatıldığı şekilde başla. Custom validation kullanarak bir dropdown’ın bağlı olduğu alanın değer içerip içermediğini kontrol edebilirsin ya da örneğin personel numarası tuttuğun bir alan olsun; bu alanın unique olmasını istiyorsun. Ona göre bir uniquePersonalNoValidation tanımı yapabilirsin. ManyToOne ilişkisi olan bir entity field için custom validation tanımlama işlemi; Buraya

    Tamamını Oku

  • Spring Boot Tyhmeleaf Form Validation

    Burada modelElemani @ModelAttribute(“modelElemani”) değeri. GetMapping içinde; if (!theModel.containsAttribute(“modelElemani”)) { Ders ders = new Ders(); theModel.addAttribute(“modelElemani”, ders);       }

    Tamamını Oku

  • Spring Boot Exception Handling

    Hata tanımlaması yapılır. @ControllerAdvice annotation’ı ile tanımlanan errorControlAdvice sınıfı içinde hata yakalanır. try catch blokları içinde throw new KayitNotFoundException(“”); Hataları try catch ile yakalamadığın durumlarda application.properties için server.error.parth = /error tanımlaması yapılır. Bir ErrorController sınıfı oluşturulur error pathi için request oluşturulur.

    Tamamını Oku

  • Git

    1- Your local changes to the following files would be overwritten by merge 2- Aynı anda birden fazla kullanıcı aynı repository üzerinde değişiklikler yapıyorsa öncelikle değişiklik yapılan dosyaları kaydet. git status ile değişiklikleri izle. Herbir dosyayı ekle. git add lib/services/kky/dagitim_noktalari_service.dart . git commit -m “abc” ile commit işlemini yap. git pull ile sunucudaki kodları al.

    Tamamını Oku