Welcome

Kotlin’de Singleton Nasıl Implement Edilir?

Java programlama dilinde “static” keyword ile statik sınıflar , statik metotlar ve statik değişkenler tanımlarız. Java’da statik olarak tanımlanmış metot ve değişkenlere de, herhangi bir nesneye ihtiyaç duymadan, sınıf düzeyinde erişebiliriz. Uygulama genelinde bir sınıftan tek bir nesne ile çalışılmasını garanti eden Singleton örüntüsünü de yine bu statik metot ve değişkenler yardımı ile implement ederiz. […]

İlginç Bir Transaction Propagation Hikayesi

Aşağıdaki örnekte Foo, Bar ve Baz şeklinde üç basit entity sınıf görüyorsunuz. Foo ve Baz içerisinde PK dışında hiçbir property mevcut değilken, Bar sınıfında ise not null özelliğinde bir name property’si tanımlı. Ayrıca bu entity’leri persist eden FooService ve BarService servis bean sınıflarımız da var. @Entity public class Foo { @Id @GeneratedValue private Long id; […]

ServiceLoader vs SpringFactoriesLoader, Hangisini Kullanalım?

Java’nın ServiceLoader kabiliyeti, Java 1.6’dan bu yana sunulan, ancak pek de bilinmeyen, basit bir kabiliyettir. Biraz da Spring’in gölgesinde kalmıştır diyebiliriz. Sonuçta ServiceLoader ile sunulan kabiliyeti de kapsayan ve çok daha fazlasını sunan bir IoC container’ınız varsa uygulama içerisinde farklı servis gerçekleştirimlerini dinamik olarak yükleme ve kullanma ihtiyacı için Spring ApplicationContext içerisinde bean tanımlamak çok […]

JPA/Hibernate Pratikleri ve Püf Noktaları

Yaklaşık 2004 yılından bu yana önce Hibernate sonra da JPA üzerinde çalışıyorum. O dönemden bu yana pek çok projenin geliştirilmesinde görev aldım, danışmanlık ve mentörlük yaptım. Yıllar önce Ted Neward, ORM teknolojilerini bilgisayar bilimlerinin Vietnam’ına benzetmişti ve bunda da çok haklıydı. Eğer genel olarak ORM çözümleri, özelde de JPA/Hibernate ile ilgili sağlam bir teorik bilgiye […]

Spring XML ve Annotation Tabanlı Konfigürasyonlar Birbirinin Aynısı mı?

Yakın bir zamanda Beginning Spring isimli kitabımız üzerinden Spring öğrenmeye çalışan bir arkadaşımdan kitapta okudukları sonrasında kafasında beliren böyle bir soru geldi. Kendisine verdiğim cevap belki Spring ile çalışan veya çalışmaya başlayacak arkadaşların da işine yarayabilir düşüncesi ile buradan paylaşıyorum. Spring ApplicationContext‘e hangi sınıfları kullanarak hangi bean’leri oluşturacağını, bu bean’lerin özelliklerinin neler olacağını, bean’ler arasındaki […]

Serialization mı Memento mu?

Geçen hafta düzenlediğimiz ve hem benim hem de katılımcılar için oldukça verimli ve eğlenceli geçtiğini düşündüğüm uygulamalı “Nesne Yönelimli Tasarım Prensipleri ve Tasarım Örüntüleri Eğitimi”nde Memento örüntüsünü inceleyip Java’da nasıl implement edileceğini bir örnek ile açıklarken “Serialization varken Memento’ya neden ihtiyaç duyarız?” şeklinde bir soru soruldu. Memento tasarım örüntüsü ile amaçlanan, bir nesnenin dahili state […]

Java ve Double Dispatch 2

İlk yazımızda Java’da “single dispatch“in nasıl çalıştığını ve “multiple dispatch” problemini incelemiştik. Eğer metot çözümleme sırasında input argümanında dikkate alınmasını istiyorsak izlememiz gereken yol “metot çözümlemeyi input argümanın kendisine delege etmek” olacaktır. Nasıl mı? Örnekle açıklayalım… Visitor v = new SubVisitor(); A a = new B(); v.visit(a); Bir önceki örneğimizde Visitor’ün visit metodunu çağırıyor ve […]

Java ve Double Dispatch 1

Hepimizin bildiği gibi Java polymorphic (çok formlu) bir dildir. Çok formluluk java uygulamasının içindeki metot çağrılarının spesifik olarak hangi sınıftaki metot tanımı ile yapılacağının çalışma zamanına kadar ötelenmesi ile gerçekleştirilmektedir. Bir örnek ile açıklayalım. public class Visitor { public void visit(A a) { System.out.println(“Visiting A”); } } public class SubVisitor extends Visitor { @Override public […]

NoClassDefFoundError vs ClassNotFoundException

Her ikisi de biz java programcılarının karşısına sıklıkla çıkan hatalardandır. Her ikisi de uygulamamızın runtime’da ihtiyaç duyduğu bir class’ın bulunamadığını anlatmaktadır. Ancak aralarındaki farkları bilmek sorunun ana nedenini tespit etmek ve çözüm getirmek için önemli olabilir. NoClassDefFoundError uygulama kodunun ihtiyaç duyduğu ve derleme sırasında mevcut olan bir sınıfın runtime’da bulunamadığını veya düzgün biçimde okunamadığını veya […]

Java Dergisi Yazıları

2010 yılında bir girişimle Özcan Acar tarafından hayata geçirilen Java Dergisi malesef kısa bir süre sonra yayın hayatına veda etmişti. O dönemde bende dergiye yazılarımla katkıda bulunuyordum. Derginin ilk iki sayısında yayımlanan ve 3. sayısı için hazırladığım fakat yayımlanma imkanı bulamayan yazılarımı buradan sizlerle tekrardan paylaşmak istedim. Spring_ve_Java_EE_6 Spring_ve_Hibernate_Entegrasyonu Hibernate ve JPAda Cache Kabiliyeti