deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Java 25'in kompakt kaynak dosyaları bir Micronaut giriş noktasını üç satıra indiriyor

Java 25'in kompakt kaynak dosyaları (JEP 512) sınıf bildirimini ve main metodu imzasını ortadan kaldırıyor; dev.to'daki bir uygulama yazısı bu özelliği bir Micronaut uygulamasına ve Gradle yapılandırmasına uyguluyor.

Java 25'in kompakt kaynak dosyaları bir Micronaut giriş noktasını üç satıra indiriyor

Java 25 giriş noktası seremonisini kaldırıyor

Java 25, JEP 512 ile kompakt kaynak dosyalarınıfinalize etti; bu dil değişikliği, çalıştırılabilir bir programın açık bir sınıf bildirimi veya tanıdık public static void main imzası olmadan yazılabilmesini sağlıyor. dev.to'da yayımlanan bir uygulama yazısı, özelliği bir Micronaut servisine uyguluyor ve uygulamanın giriş noktasının üçe satıra indiğini gösteriyor.

Kompakt kaynak dosyası nedir

dev.to gönderisinde açıklandığı gibi, bu özellik her Java programının tarihsel olarak zorunlu kıldığı kalıp kodu hedefliyor: bir package bildirimi, bir sınıf sarmalayıcısı ve resmi bir main metodu. Kompakt bir kaynak dosyası olağan importları korur ama geri kalanını çıplak bir üst düzey metotla değiştirir. Derleyici dosyayı, adı dosya adından alınan örtük olarak bildirilmiş bir sınıf olarak ele alır ve bu dosyadaki bir void main() metodu programın giriş noktası haline gelir.

Micronaut giriş noktası: öncesi ve sonrası

Geleneksel Micronaut önyüklemesi çoğu JVM web framework'ünün istediği şekli yansıtır — main metodu kontrolü framework'e devreden küçük bir sınıf:

java package com.example;

import io.micronaut.runtime.Micronaut;

public class Application { public static void main(String[] args) { Micronaut.run(Application.class, args); } }

Kompakt bir kaynak dosyasıyla aynı davranış, Application.java adlı bir dosyaya sığar:

java import io.micronaut.runtime.Micronaut;

void main() { Micronaut.run(); }

dev.to yazarı ortadan kalkanları şöyle sıralıyor: package bildirimi, sınıf bildirimi ve tam metot imzası, ayrıca sınıf referansını framework'e açıkça geçirme ihtiyacı.

Gradle yapılandırması dosya adını izliyor

Kompakt dosya bir package bildirmediği için Gradle application bloğu artık tam nitelikli bir ada başvurmuyor ve bunun yerine çıplak sınıf adını gösteriyor:

application { mainClass = "Application" }

Gönderi iki pratik gerekliliğe dikkat çekiyor. Birincisi, örtük sınıf adını dosyadan aldığı için dosya adı ve yapılandırılan mainClass değeri tam olarak eşleşmeli — birini öteki olmadan yeniden adlandırmak, build'i artık var olmayan bir sınıfa işaret eder hale getirir. İkincisi, dosya package tarzı dizinlerin altına yerleştirilmek yerine src/main/java'nın kökünde durmalı. Gönderide belirtildiği gibi Java derleyicisi dizin düzenine karşı esnektir, ancak IDE'ler ve artımlı derleme, düzen gelenekle eşleştiğinde daha öngörülebilir davranır.

Neden önemli

Uygulama yazısının dayandığı gözlem, proje yapısının Spring, Micronaut, Quarkus ve Helidon arasında esasen aynı olması; dolayısıyla bu sadeleştirmenin Micronaut'a özgü değil geniş çapta uygulanabilir olduğudur. Bir framework uygulamasının giriş noktası iş mantığı içermez; tartışmaya en az ilginç kod olanıdır ve Java 25 sonunda yer işgal etmeyi bırakmasını sağlıyor. Bu, küçük servisler, denemeler ve öğretici örnekler için sürtünmeyi azaltır ve yeni başlayanlara dille daha temiz bir ilk temas sunar.

Tartılmaya değer ödünleşimler de var. Dosya adı ve build yapılandırması artık eskisinden farklı biçimde birbirine bağlı ve derleyici zorunlu kılmasa da dizin gelenekleri araçlar için hâlâ önemli. Başka nedenlerle açık bir sınıfa veya package'e ihtiyaç duyan ekipler ya da henüz Java 25'e geçmemiş olanlar hemen bir şey kazanmıyor. Yine de bu, yaşam kalitesini anlamlı ölçüde iyileştiren bir adım: Java'nın en küçük programları artık gerçekten oldukları kadar küçük görünebiliyor.

  • #java
  • #micronaut
  • #gradle
  • #jvm

İlgili yazılar