Java Academy · Oppitunti

module-info.java

Määritä moduuli.

Oppitunti 1/413 vaihetta

module-info.java on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 4 oppituntia.

Moduulijärjestelmä

Java Platform Module System (JPMS), joka otettiin käyttöön Java 9:ssä, mahdollistaa pakettien ryhmittelyn nimetyiksi moduuleiksi, joilla on eksplisiittiset riippuvuudet ja rajat.

Määritys sijaitsee erityisessä tiedostossa: module-info.java.

Miksi moduuleja

Ennen moduuleja classpath oli litteä, rakenteeton JAR-tiedostojen kokoelma. Kuka tahansa saattoi käyttää mitä tahansa julkista luokkaa, ja puuttuvat riippuvuudet havaittiin vasta ajon aikana.

Moduulit lisäävät vahvan kapseloinnin ja luotettavan konfiguraation, jotka tarkistetaan käännös- ja käynnistyshetkellä.

Missä module-info sijaitsee

module-info.java sijaitsee lähdepuun juuressa, pakettihakemistojen yläpuolella. Se käännetään moduulin juureen sijoitettavaksi tiedostoksi module-info.class.

Moduulia kohden on täsmälleen yksi tällainen tiedosto.

Minimaalinen määritys

Yksinkertaisimmassa moduulissa on vain nimi. Nimet muodostetaan käytännön mukaan käänteisen DNS-nimeämisen perusteella, kuten pakettien nimet.

module com.example.app {
}

Riippuvuuden ilmoittaminen

Käytä määritystä requires, kun haluat ilmoittaa riippuvuuden toisesta moduulista. Jokainen moduuli edellyttää implisiittisesti moduulia java.base, joten sitä ei tarvitse koskaan ilmoittaa.

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

Paketin näkyväksi tekeminen

Oletusarvoisesti moduulin paketit ovat piilotettuja. Käytä määritystä exports, jotta paketin julkiset tyypit tulevat näkyviksi muille moduuleille.

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

Vahva kapselointi

Kaikki paketit, joita ette export-direktiivillä vie, ovat täysin saavuttamattomissa ulkopuolelta, myös niiden julkiset luokat. Tämä on suuri ero classpath-maailmaan verrattuna.

Sisäiset paketit pysyvät sisäisinä JVM:n valvonnassa.

Moduulien nimeämissäännöt

Moduulien nimet noudattavat samoja leksikaalisia sääntöjä kuin paketit: pisteillä eroteltuja tunnisteita. Valitkaa vakaa ja maailmanlaajuisesti yksikäsitteinen nimi, koska muut moduulit riippuvat siitä nimen perusteella.

Moduulin nimeäminen uudelleen rikkoo sitä käyttävät moduulit.

Täydellisempi esimerkki

Todellinen määritys yhdistää requires- ja exports-direktiivit. Tämä moduuli riippuu lokikirjastosta ja tuo näkyviin vain julkisen API-pakettinsa.

module com.example.orders {
    requires java.logging;
    requires com.example.payments;

    exports com.example.orders.api;
}

Moduulin kääntäminen

Kääntäminen tapahtuu moduulit huomioivilla valitsimilla. --module-source-path- ja -d-valitsimet kertovat kääntäjälle, missä lähdekoodi ja tulosteet sijaitsevat.

  • javac -d out --module-source-path src $(find src -name '*.java')
  • java --module-path out --module com.example.app/com.example.app.Main

Moduulipolku

Moduulit ratkaistaan moduulipolusta (--module-path), joka on classpathin modulaarinen seuraaja. Käynnistysohjelma lukee kunkin moduulin kuvauksen ja muodostaa riippuvuusgraafin ennen ohjelman käynnistämistä.

Pikatarkistus

Palauttakaa mieleenne pakettien oletusnäkyvyys.

Kertaus

Opitte module-info.java-tiedoston perusteet:

  • Yksi moduulikuvaus moduulia kohden lähdepuun juuressa
  • requires ilmoittaa riippuvuudet; java.base on implisiittinen
  • exports tuo paketin näkyviin; kaikki muu on kapseloitu
  • Ohjelma käännetään ja suoritetaan valitsimilla --module-path ja --module

Seuraavaksi perehdytte requires- ja exports-direktiiveihin yksityiskohtaisesti.

Aloita maksutta

Opi Java tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
104
Oppitunnit
374

Usein kysytyt kysymykset

Onko oppitunti ”module-info.java” ilmainen?

Kyllä – oppitunnin ”module-info.java” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”module-info.java”?

Määritä moduuli. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”module-info.java”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?

Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. module-info.java
  2. requires ja exports
  3. Palvelut: provides/uses
  4. Moduuleihin siirtyminen
← Takaisin: Java Academy