Java Ekosistemi Nisan Ayı Notları(2024)

Nesrin Asan
4 min readMay 8, 2024

--

JAKARTA EE 11

Java 21 sonrası artık Jakarta EE için ilk büyük adım olan Jakarta EE 11'in release’i konuşulabilir. 2024'ün ilk çeyreği olarak hedefleniyor. Burada şöyle bir detay da var. Bildiğimiz üzere artık Java sürümleri 6 ayda bir yeni version yayınlamaktadır. Bu sürümlerden LTS olanlarının bakım süreleri çok daha uzun oluyor. Bununla paralel olarak Spring’te 6 aylık sürümler çıkmaya başladı. son durumda ise Jakarta EE sürümleri de Java’nın LTS sürümlerinden 6 ay sonrasına adresleniyor. Jakarta EE 11 Java 21'i destekliyor olacak. ve ek olarak Jakarta Persistence API 3.2.* ‘ü destekliyor olacak.

JAKARTA PERSISTENCE API 3.2

Jakarta EE 11'de büyük değişiklikler bizleri bekliyor. tabi bu değişiklikler kullanılan diğer bağımlıklarla da ilgili. Örneğin JPA 3.2de birçok yeni özellikler var. Bunlardan biri javadaki record classların kullanımı ile ilgili mesela. Record classlar immutable’dır. Ancak Entity’ler tabloları temsil ettikleri için runtime’da değiştirilebilmelidirler. Ya da record classların alanlarını nesneyi oluştururken vermek zorundasın. Ancak entity’lerinde lazy loading işlemler yapabiliyorsun. Bu durumda record class kullanmak yine doğru olmayacaktır. Ancaak JPA 3.2 ile birlikte record classları entity olarak değil belki ama entity’lere yardımcı olarak kullanabiliriz. Örneğin:

@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;

@Embedded
private Address address;

}
@Embeddable
public record Address(String street, String city, String zipCode) {
}

Yukarıdaki örnekte olduğu gibi Person entity’sinin kolonlarını gruplayabilirsiniz. Burada Address adında ayrı bir tablo oluşmayacaktır. Adress üzerindeki alanlar yine Person tablosunda olacak.

Bunun gibi yine recordları kullanarak Query sorguları sonrasında dönen datayı da recordlara cast edebilirsiniz.

public record BookRecord(Long id, String title, String author, String isbn) {}
public interface BookRepository extends JpaRepository<Book, Long> {
@Query("SELECT new com.baeldung.jpa.records.BookRecord(b.id, b.title, b.author, b.isbn) FROM Book b WHERE b.id = :id")
BookRecord findBookById(@Param("id") Long id);
}

Bunun gibi birçok özellik JPA 3.2 ile birlikte geliyor. Birçok yeni hibernate criteria sorgu türleri, java.time API Entegrasyonu’nu bunlara örnek verebiliriz.

HIBERNATE

Hibernate 7.0.0.Alpha1 sürümü yayınlandı. Bu sürümle birlikte “oldukça yıkıcı” olarak tanımlanan jakarta persistence 3.2 ye geçiş yapıyor.

SPRING

InfoQ ‘da Spring developer’ı Josh Long’un güzel bir röportajı var. Burada Spring ile ilgili gelişmeleri bazı işlerdeki motivasyonları bulabilrisiniz. Örneğin: Josh Long Spring Framework 6.0 ve 6.1 için ücretsiz destek süresi %20 azaltılarak 21.5 aya indirilmesi konusundan bahsediyor. Bu değişikliklerle birlikte, kullanıcıların yeni özelliklere daha hızlı geçiş yapmalarını bekliyorlar.

Spring ile ilgili release’leri takip etmek isteyenler için şöyle bir takvim var. Bu takvim üzerinden takip yapabilirsiniz.

Spring AI yakın zamanda release olmuştu. Benim de deneyimleme şansım oldu. Daha önceden python’la bir openAI entegrasyonu yapıp chatgpt4 apisine istek atıp cevap almıştım. Aynısını Spring AI ile deneyimledim. python ile yaptığım POC çalışmasından daha fazla zamanımı almadığını söyleyebilirim. Entegrasyonu çok rahat. dakikalar içerisinde GPT’den cevap alabilecek duruma gelebiliyorsunuz. Aynı şekilde Vector DB ile çalışmaya da müsait bir yapısı var. Bu haliyle Spring AI gerçekten emin adımlarla ilerliyor diyebilirim. Bizi ellere düşürmediği için teşekkürler ❤

Spring ekibi, Spring topluluğunun öğrenme deneyimini iyileştirmek amacıyla, Spring Akademisindeki Profesyonel İçeriklerin 5 Nisan 2024'ten itibaren artık ücretli abonelik gerektirmeyeceğini duyurdu.

https://spring.academy/ üzerinden erişebilirsiniz.

AI

Meta AI’ın yeni sürümü yayınlandı. Mark Bey Meta Llama 3 modeli ile en akıllı AI asistanını yaptıklarını iddia ediyor. Fotoğaflara AI ile animasyon eklemenin yanısıra Meta AI ‘ı Instagram, WhatsApp,Facebook ve Messenger’ın arama kutularına entegre ederek kullanımını kolaylaştırıyorlarmış. Bir de metaAI’a artık web üzerinden erişmek için de şu adresi ziyaret edebilirmişsiniz. https://www.meta.ai/

Meta’nın Ray-Ban gözlükleri de, AI güncellemesi aldı. Bu AI güncellemesi ile gözlüklere ne gördüğünüzü sorabilir ve bilgi alabilirsiniz. Ayrıca WhatsApp ve Messenger üzerinden görüntülü aramalar yapılabiliyor. Tipi de güzelmiş :D

OpenAI kurucusu Sam Altman bir röportajında amaçlarının insandan daha zeki bir yapay zeka oluşturmak olduğunu bu sebeple harcanan parayı(yılda 50M $ olsa da) umursamadıklarını belirtiyor.

LLM araçlarınn nasıl kullanıldığını anlatan bir video’yu şöyle bırakıyorum. https://www.youtube.com/watch?v=zjkBMFhNj_g

Bir zamanların duayen yardımcısı Stackoverflow’un hali yeşilçam karakterlerinin yıllar sonra Show tv’de “bir apartmanın bodrum dairesinde devam eden yitik hayat” başlığındaki gibi olmak üzereykeeen OpenAI ile iş birliği haberini aldık. Stackoverflow’un zaten OverflowAPI adında AI yapısı bulunuyordu. bu yapı OpenAI ile birleşiyor. Stack Overflow, OpenAI’den elde edilen insight’larla topluluk geri bildirimlerini daha iyi kullanmayı ve AI model performansını artırmayı hedefliyor. Ne diyelim hayırlı uğurlu olsun :D

Nisan ayı özetim bu şekilde. Tüm bu konular ve daha fazlasını JUG ISTANBUL podcast yayınlarımızda konuşuyoruz. Keyifli dinlemeler.

Bug’sız günler :)

--

--