Hikari Spring RestTemplate Timeout
Java , Spring Framework / 29 Kasım 2019

Merhaba değerli Java dostları, Yakın zamanda karşılaştığım bir problemi paylaşmak istiyorum. RestTemplate ile yapılan requestlere response dönmemesi ve bir müddet sonra da Hikari üzerindeki poolda artık kullanılabilecek connection kalmaması problemi yaşadım. Bunun üzerine kullanılan resttemplate için timeout kullanılmadığını ve infinite beklemeye girdiğini gördüm. Tetikleyen metot da @Transactional olarak işaretlendiği için bir müddet sonra sistem çökmesi meydana geldi. Paylas    

Spring JPA org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role
Java , Spring Framework / 06 Ekim 2017

Merhaba değerli Java dostları, bu yazımda aslında çok basit bir hareketle çözülebilen; ama bu çözümün bulunması uzun vakit alabilen bir probleme değinmek istiyorum. Entity tanımları yapılırken bağlı entityler lazy load olarak tanımlanabilir. Bu durumda gerçekten o bağlı nesneler çağrıldığında yüklenir. Çağrılmadığı sürece bir proxy ile işler idare edilir. Fakat session ve transaction yönetimi şeklinize bağlı olarak org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role hatasını alabilirsiniz. Bu hatanın nedeni lazy load yapılırken aktif bir session bilgisinin bulunmaması. Bunu çok basit bir hareketle çözüyoruz. Ben annotation tabanlı gittiğim için java kodu üzerinden örnek vereceğim. Xml tabanlı gidenler için de aslında sadece tanım şekli değişiyor, mantık aynı. EntityManagerFactory sınıfı üzerinden properties veriyoruz. LocalContainerEntityManagerFactoryBean.setJpaProperties(additionalProperties); Paylas    

Spring Validation
Java , Spring Framework / 04 Ağustos 2016

Merhabalar değerli Java dostları, Bugünkü yazımda, dün olduğu gibi, yine basit, pratik ve kullanışlı bir interface tanıtmak istiyorum. Validator, içerisinde supports() ve validate() metotlarını barındırır. Supports() validate işlemi için bir ön işlem olarak düşünülebilir. Doğrulama işlemi yapılıp yapılmayacağına bir nevi karar verildiği metottur. Validate işlemi işe içerisinde business logic kurallarına göre işlemler yapan ve olası doğrulama hatalarını Errors nesnesine gömen bir metottur. İsterseniz çok uzatmadan örneğimize geçelim. package anajavatica.spring.validation; Paylas    

Spring Resource Interface
Java , Spring Framework / 03 Ağustos 2016

Merhaba değerli Java dostları, Bugünkü yazımda Spring içerisinde mevcut basit; ama çok kullanışlı olduğunu düşündüğüm bir interface ve buna bağlı sınıfları tanıtmak istiyorum. Öncelikle Resource ile amacımız URL, file vb tabanlı kaynakları, girdileri okumak. Resource interface kendi içerisinde bazı metotlar barındırıyor. Bunlardan en önemli olduklarını düşündüklerim; getInputStream(): Her çağrımında yeni bir nesne döndürür ve kaynak ile bağlantı kurulmasını sağlar. Kapatılması kütüphaneyi kullanan kişiye aittir. Paylas    

Spring Annotation Injection
Java , Spring Framework / 04 Mart 2016

Merhaba Java dostları, Daha önceki yazımda  Spring annotation configuration nasıl tanımlanır konusuna değinmiştim. Bu yazımda ise nesnelerin birbirilerine olan bağımlılıklarının nasıl düzenleneceğini anlatmak istiyorum. Bir sınıfta başka bir sınıfa ihtiyaç duyulması durumu kaçınılmazdır. Spring’ in temel çıkış noktalarından birisi olan dependency injection ise bu durumda vazgeçilmez vazgeçilmemesi gereken bir tasarım olarak ortaya çıkıyor. Yani A nesnesi ihtiyaç duyduğu B nesnesini direkt olarak constructor veya set metotları aracılığı ile kabul edecektir. Kendi içersinde new ile oluşturup gerekli işlemleri yapması istenilmeyen bir durumdur. Paylas    

Spring Annotation Configuration
Java , Spring Framework / 03 Mart 2016

Merhabalar değerli Java dostları, Bu yazı ile Spring frameworke tüm hızla devam ediyoruz. Gerek kategori gerekse de AnaJavatica sekmesi altında çeşitli yazılar ile konumuza devam etmiştik. Bugün ise annotation tabanlı konfigürasyon ile bean okuma işlerine gireceğiz. Malumunuz üzere Spring ile XML ve annotation tabanlı tanımlamalar yapılabilmektedir. Her ikisinin de kendisine göre avantaj ve dezavantajları var. Bunlara başka yazımda değinmek istiyorum. Ayrıca bu iki yöntem beraber de kullanılabilmektedir. Öncelikle basit bir bean sınıfımıza bakalım. Paylas    

Method Injection
Java , Spring Framework / 29 Ocak 2016

Merhaba değerli Java dostları, Bugünkü yazımda bir tasarım yöntemi olan aynı zamanda, özellikle Spring olmak üzere, çeşitli frameworklerde kullanılan bir yönteme değinmek istiyorum. Yöntemimizin adı method injection, tam Türkçe’ ye çeviremesek de diğer adıyla metot bağımlılığını enjekte etmek 🙂 . Method injection çıkış noktası, uygulama boyunca scope değeri farklı olan bean örneklerinin birbirine ihtiyaç duyması. Yine method injection için temel nokta, singleton yani tekil bir nesnenin kendi içerisinde prototype yani devamlı yeni nesneye ihtiyaç duyması. Singleton nesne sadece bir defa new ile oluşturulup, tüm uygulama boyunca kullanılacağı için prototype nesnenin devamlı new edilme imkanı ortadan kalkıyor. Spring ile method injection çok basit bir şekilde yapılıyor. Klasik bean tanımlamalarımıza ek olarak lookup-method ekliyoruz ve method injection gerçekleşmiş oluyor. Önce sınıflarımıza bakalım. package anajavatica.spring.methodinjection; Paylas    

Spring AnnotationConfigApplicationContext has not been refreshed yet
Java , Spring Framework / 26 Ocak 2016

Merhaba değerli Java dostları, Spring ile çalışırken malumunuz üzere XML ve annotation tabanlı çalışabiliyoruz. Annotation tabanlı çalışırken getBean() metodu veya türevi bir metot ile bean örneği almaya çalışırken yukarıdaki gibi AnnotationConfigApplicationContext has not been refreshed yet hatası alırsanız, öncelikle bean register edilip edilmediğini kontrol etmemiz gerekiyor. Eğer register işlemi tamam ise daha sonra refresh işleminin çağrılması gerekiyor. Bu son adım sorununuzu çözecektir. Paylas    

Spring Converter
Java , Spring Framework / 23 Eylül 2010

Spring, tip dönüşümleri diğer bir deyişle çevrim işlemleri  için Converter arayüzünü sunar. Bu arayüzde tek bir metot bulunur ve genel bir çevrim metodu sunar. Gereksinime göre bu genel tipler daraltılabilir. public interface Converter<S, T> Paylas    

Spring BeanWrapper
Java , Spring Framework / 22 Eylül 2010

Spring Framework içerisinde bulunan BeanWrapper arayüzü, Java Bean’ ler üzerinde kolay işlem gerçekleştirmek üzere tasarlanmış bir arayüz. BeanWrapper arayüzü ve bunu uygulayan sınıf sayesinde beanler üzerinde XML tabanlı işlemlerin yanı sıra sınıf kodları ile de işlem yapabilirsiniz. Hemen basit bir örnekle başlayalım. Önce Worker sınıfı. package com.farukbozan.spring;import java.util.ArrayList;public class Worker {private String name; private double salary; ArrayList holidays; Worker bestFriend; Paylas