Sovelluksen ominaisuuksien ulkoistaminen
Konfiguroikaa sovellus `application.properties`- ja `application.yml`-tiedostojen avulla ja hallitkaa profiileja.
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=8080spring.datasource.url=jdbc:h2:mem:testdbmy.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}.propertiesapplication-{profile}.yml
Esimerkiksi:
application-dev.propertieskehitysasetuksille.application-prod.ymltuotantoasetuksille.
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: Asetaspring.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.ymlsoveltuu 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!
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
- Springin IoC-säiliöön tutustuminen
- Riippuvuuksien injektointi käytännössä
- Sovelluksen ominaisuuksien ulkoistaminen
- Beanien skoopit ja elinkaaren hallinta