0Pricing
Java Academy · Ders

requires ve exports

Bağımlılıkları ve görünürlüğü denetleyin

requires ve exports, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

Modül Grafiğini Denetleme

İki yönerge modül grafiğini şekillendirir: requires neye bağımlı olduğunuzu, exports ise neyi açığa çıkardığınızı bildirir.

Bu derste, bunların çeşitlerini ve oluşturdukları okunabilirlik/erişilebilirlik kurallarını inceliyoruz.

Basit Bağımlılık Bildirimi

Basit bir requires X; bildirimi, “bu modül X modülünü okur” anlamına gelir. Kodunuz X'in dışa açtığı genel türleri kullanabilir; ancak sizin modülünüzü kullananlar X hakkında hiçbir bilgi edinmez.

module com.example.app {
    requires java.sql;
}

Geçişli Bağımlılık Bildirimi

requires transitive Y; bildirimi, sizi okuyan herhangi bir modülün Y'yi de okuyacağı anlamına gelir. Bu, API'niz Y'nin türlerini açığa çıkardığında yararlı olan örtük okunabilirliktir.

module com.example.api {
    requires transitive java.sql;
}

Geçişli Bildirim Ne Zaman Kullanılır

transitive seçeneğini, dışa açtığınız programlama arayüzündeki bir yöntem başka bir modülden bir tür döndürüyor veya kabul ediyorsa kullanın. Aksi takdirde çağıranlar, kendi bağımlılık bildirimleri olmadan dönüş türünü adlandırmayı bile başaramaz.

Bu, tüketicilerin gereksiz bağımlılıkları bildirmesini önler.

Statik Bağımlılık Bildirimi

requires static Z; bildirimi, yalnızca derleme zamanında gereken bir bağımlılığı belirtir. Modül derleme için gereklidir, ancak çalışma zamanında isteğe bağlıdır; bu nedenle ek açıklama işlemcileri veya isteğe bağlı tümleştirmeler için idealdir.

module com.example.app {
    requires static com.example.annotations;
}

Basit Dışa Aktarma

exports pkg; bildirimi, pkg paketindeki genel türleri, sizin modülünüzü gerektiren tüm modüller tarafından okunabilir hale getirir.

module com.example.lib {
    exports com.example.lib.api;
}

Nitelikli Dışa Aktarma

Nitelikli dışa aktarma, exports pkg to modA, modB; kullanılarak bir paketi yalnızca adı belirtilen belirli modüllere açar. Bu, daha büyük bir sistem içindeki dost modüller için kullanışlıdır.

module com.example.core {
    exports com.example.core.internal to com.example.web, com.example.batch;
}

Yansıma için Açma

exports, genel üyelere derleme ve çalışma zamanı erişimi verir. Derin yansıma (özel alanlar) için bunun yerine opens pkg; gerekir; bu, Jackson veya Hibernate gibi çerçeveler tarafından kullanılır.

module com.example.model {
    exports com.example.model;
    opens com.example.model.entities to com.fasterxml.jackson.databind;
}

Açık Modüller

Bir modülün tamamının yansıma yoluyla erişilmesi gerekiyorsa (eski çerçevelerde sık görülür), modülü open olarak bildirin. Böylece her paket yansıma için açılır; ancak normal exports bildirimleri derleme zamanındaki erişimi hâlâ denetler.

open module com.example.beans {
    requires java.logging;
}

Okunabilirlik ve Erişilebilirlik

Başka bir modülün türünü kullanabilmek için iki koşulun da sağlanması gerekir:

  • Okunabilirlik: modülünüz onların modülünü requires ile belirtir
  • Erişilebilirlik: onların modülü paketi exports ile dışa açar ve tür geneldir

Bunlardan biri eksikse derleyici kodunuzu reddeder.

Bir Araya Getirme

JDBC türlerini yeniden dışa açan ve JSON kitaplığı için varlıkları açan düzgün biçimli bir modül:

module com.example.service {
    requires transitive java.sql;
    requires static com.example.annotations;

    exports com.example.service.api;
    exports com.example.service.spi to com.example.plugins;
    opens com.example.service.dto to com.fasterxml.jackson.databind;
}

Hızlı Kontrol

Yeniden dışa açılan programlama arayüzü türleri için kullanılacak yönergeyi seçin.

Özet

Bağımlılık ve görünürlük yönergelerini öğrendiniz:

  • requires, requires transitive, requires static
  • exports ve nitelikli exports ... to
  • Yansıma için opens ve open module
  • Kullanım için hem okunabilirlik hem de erişilebilirlik gerekir

Sırada: provides ve uses aracılığıyla hizmetlerle bağımlılıkları ayırma.

Sıkça Sorulan Sorular

“requires ve exports” dersi ücretsiz mi?

Evet — “requires ve exports” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“requires ve exports” dersinde ne öğreneceğim?

Bağımlılıkları ve görünürlüğü denetleyin Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“requires ve exports” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. module-info.java
  2. requires ve exports
  3. provides/uses ile Hizmetler
  4. Modüllere Geçiş
← Java Academy Sayfasına Dön