Spring Boot 4:n kattava opas · Oppitunti

Sovelluksen ominaisuuksien ulkoistaminen

Konfiguroikaa sovellus `application.properties`- ja `application.yml`-tiedostojen avulla ja hallitkaa profiileja.

Oppitunti 3/412 vaihetta

Sovelluksen ominaisuuksien ulkoistaminen on ilmainen Spring Boot 4:n kattava opas-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Spring Boot 4:n kattava opas-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4:n kattava opas-kurssilla on yhteensä 4 oppituntia.

Pidä konfiguraatio joustavana

Kuvittele rakentavasi sovellusta eri ympäristöihin, kuten kehitys-, testi- ja tuotantoympäristöihin. Kussakin niistä voidaan tarvita omat tietokantatunnukset, API-avaimet tai palvelinportit.

Näiden arvojen kovakoodaaminen suoraan koodiin on huono käytäntö. Se tekee sovelluksesta joustamattoman ja vaikeasti hallittavan.

Konfiguraation ulkoistaminen tarkoittaa, että nämä muuttuvat arvot tallennetaan pääsovelluskoodin ulkopuolelle. Näin niitä voi muuttaa ilman sovelluksen uudelleenrakentamista.

application.properties

Spring Boot tekee ulkoisesta konfiguraatiosta helppoa. Yleisin tapa on käyttää application.properties-tiedostoa, joka sijaitsee kansiossa src/main/resources.

Tiedostossa käytetään yksinkertaista avain-arvo-parien muotoa, jossa kukin ominaisuus on omalla rivillään:

  • server.port=8080
  • spring.datasource.url=jdbc:h2:mem:testdb
  • my.custom.greeting=Hello CoddyKit!

Nämä arvot voidaan sitten injektoida Spring-komponentteihin.

Injektio @Value-annotaatiolla

Kun haluat käyttää ulkoistettua ominaisuutta Java-koodissasi, Spring tarjoaa @Value-annotaation.

Voit käyttää @Value-annotaatiota kentissä, konstruktorin parametreissa tai metodien parametreissa. Se lukee ominaisuustiedostoista tiettyyn avaimeen liittyvän arvon.

Syntaksi on @Value("${property.key}"). Jos ominaisuutta ei löydy, voit antaa oletusarvon esimerkiksi näin: @Value("${property.key:Default Value}").

@Value käytännössä

Katsotaan, miten @Value toimii. Ensin luomme application.properties-tiedoston.

src/main/resources/application.properties:

app.message=Welcome to CoddyKit!

Suorita nyt tämä Spring Boot -sovellus. Se injektoi ominaisuuden ja tulostaa sen käynnistyksen yhteydessä.

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;

@SpringBootApplication
public class MyApplication {
  public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);
  }
}

@Component
class MessagePrinter implements CommandLineRunner {

  @Value("${app.message}")
  private String message;

  @Override
  public void run(String... args) throws Exception {
    System.out.println("Application Message: " + message);
  }
}

Jäsennellyt YAML-tiedostot

Toinen suosittu ulkoisen konfiguraation muoto on YAML (YAML Ain't Markup Language), jota käytetään yleensä application.yml-tiedostossa.

YAML tarjoaa ihmisen luettavaksi sopivamman hierarkkisen rakenteen kuin .properties-tiedostojen litteät avain-arvo-parit. Sisennystä käytetään sisäkkäisten ominaisuuksien määrittämiseen.

  • Luettavuus: Monimutkaisia konfiguraatioita on helpompi hahmottaa.
  • Hierarkia: Toisiinsa liittyvät ominaisuudet ryhmittyvät luontevasti.
  • Vähemmän toistoa: Yleisten etuliitteiden toistamista vältetään.

YAML selkeyttää konfiguraatiota

Tältä sama aiempi viestiominaisuus näyttäisi application.yml-tiedostossa:

src/main/resources/application.yml:

app: message: Welcome to CoddyKit! (YAML)

Java-koodi pysyy täsmälleen samana, koska Spring Boot tukee automaattisesti molempia muotoja. Suorita sovellus nähdäksesi sen toiminnassa.

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;

@SpringBootApplication
public class MyApplication {
  public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);
  }
}

@Component
class MessagePrinter implements CommandLineRunner {

  @Value("${app.message}")
  private String message;

  @Override
  public void run(String... args) throws Exception {
    System.out.println("Application Message: " + message);
  }
}

Kumpi voittaa? Etusijajärjestys

Mitä tapahtuu, jos projektissasi on sekä application.properties- että application.yml-tiedosto? Kumpi niistä on etusijalla?

Spring Bootilla on tietty järjestys konfiguraatiolähteiden lataamiseen. Yleensä application.properties-tiedostossa määritellyt ominaisuudet ovat etusijalla application.yml-tiedoston ominaisuuksiin nähden, kun molemmat tiedostot sisältävät saman avaimen.

Näin oletusarvot voi tarvittaessa korvata tarkemmilla arvoilla alkuperäisiä tiedostoja muuttamatta.

Mukauttaminen profiilien avulla

Spring-profiilien avulla voit erotella sovelluksen konfiguraation osia ja ottaa ne käyttöön vain tietyissä ympäristöissä.

Voit esimerkiksi määrittää eri tietokanta-asetukset development-, test- ja production-ympäristöille. Konfiguraatiotiedostoja ei tarvitse muuttaa manuaalisesti, vaan voit määrittää profiileja.

Kun tietty profiili on aktiivinen, vain kyseiseen profiiliin liittyvät beanit ja konfiguraatio ladataan.

Ympäristökohtainen mukauttaminen

Profiilikohtaisten ominaisuuksien määrittämiseksi luo ylimääräisiä konfiguraatiotiedostoja tietyn nimeämiskäytännön mukaisesti:

  • application-{profile}.properties
  • application-{profile}.yml

Esimerkiksi:

  • application-dev.properties kehitysasetuksille.
  • application-prod.yml tuotantoasetuksille.

Nämä tiedostot sisältävät ominaisuuksia, joita käytetään vain vastaavan profiilin ollessa aktiivinen.

Profiilien vaihtaminen

Spring-profiilin voi aktivoida usealla tavalla:

  • JVM-järjestelmäominaisuus: Välitä -Dspring.profiles.active=dev, kun suoritat sovellusta.
  • Ympäristömuuttuja: Aseta SPRING_PROFILES_ACTIVE=prod.
  • application.properties-/.yml-tiedostossa: Aseta spring.profiles.active=test.

Tuotantoon julkaistaessa on tavallista käyttää JVM-argumentteja tai ympäristömuuttujia, jolloin pääasiallinen application.properties pysyy siistinä.

Pikatarkistus: konfiguraatio

Sinulla on application.properties-tiedosto, jossa on app.environment=development. Lisäksi sinulla on application-prod.properties-tiedosto, jossa on app.environment=production.

Miten aktivoisit prod-profiilin niin, että app.environment saa arvokseen production?

Konfiguraation kertaus

Hienoa työtä! Olet oppinut ulkoistamaan Spring Boot -sovelluksen ominaisuudet, mikä tekee sovelluksista joustavampia ja helpommin hallittavia eri ympäristöissä.

  • Tutustuimme application.properties-tiedostoon yksinkertaisia avain-arvo-pareja varten.
  • Näimme, miten application.yml soveltuu jäsenneltyyn, hierarkkiseen konfiguraatioon.
  • Opit injektoimaan ominaisuuksia koodiin @Value-annotaation avulla.
  • Lopuksi käsittelimme Spring-profiileja, joiden avulla konfiguraatioita voi mukauttaa tiettyihin ympäristöihin, sekä niiden aktivointia.

Tämä tieto on erittäin tärkeää vankkojen ja mukautuvien Spring Boot -sovellusten rakentamisessa!

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
21
Oppitunnit
84

Usein kysytyt kysymykset

Onko oppitunti ”Sovelluksen ominaisuuksien ulkoistaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Spring Boot 4:n kattava opas-oppimispolun 3 oppituntia, myös oppitunnin “Sovelluksen ominaisuuksien ulkoistaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Spring Boot 4:n kattava opas-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Sovelluksen ominaisuuksien ulkoistaminen”?

Konfiguroikaa sovellus `application.properties`- ja `application.yml`-tiedostojen avulla ja hallitkaa profiileja. Harjoittelet Spring Boot 4:n kattava opas-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Boot 4:n kattava opas-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4:n kattava opas-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Sovelluksen ominaisuuksien ulkoistaminen”-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ä Spring Boot 4:n kattava opas-oppitunnilla?

Kyllä. Jokainen Spring Boot 4:n kattava opas-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. Springin IoC-säiliöön tutustuminen
  2. Riippuvuuksien injektointi käytännössä
  3. Sovelluksen ominaisuuksien ulkoistaminen
  4. Beanien skoopit ja elinkaaren hallinta
← Takaisin: Spring Boot 4:n kattava opas