2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Ensinnäkin Java-projekti vaatii erilaisia ympäristökonfiguraatioita. Joten miten se saavutetaan?
Luo tai lisää application.yml-tiedosto Spring Boot -projektisi src/main/resources-hakemistoon. Tästä Spring Boot etsii oletusarvoisesti asetustiedostoja. Tämä tiedosto voi lisätä yleisiä määrityksiä.
Sitten voit myös luoda samaan hakemistoon tiedostoja, kuten application-test.yml, application-prod.yml, Spring Boot tunnistaa nämä profiilikohtaiset määritystiedostot automaattisesti. Voit määrittää näissä tiedostoissa parametreja eri ympäristöille, kuten tietokantaosoitteita, redis-välimuistin osoitteita jne.
Eli src/main/resources-hakemistossa voi olla useita tiedostoja, kuten tämä:
application.yml
application-prod.yml
application-test.yml
Tämän jälkeen voit käyttää application-test.yml- ja application-prod.yml-määrityksiä kahden muuttujan ilmoittamiseen, joilla on sama kokoonpano, mutta eri arvot.esimerkiksi
application-test.yml:
mysql:
url: https://xx.test.com/mysql
application-prod.yml:
mysql:
url: https://xx.online.com/mysql
Java-koodissa voit käyttää tätä URL-osoitetta dynaamisesti:
@Value("${mysql.url}")
protected String mysqlUrl;
Täydellinen.
Joten miten vastaavaa profile-specific.yml-tiedostoa käytetään automaattisesti, kun järjestelmä on käynnissä?Katso alla
Katsotaanpa kuinka ympäristömuuttujat välitetään projektiin kerros kerrokselta ulkoisesta verkosta.
Ensinnäkin docker pakkaa yleensä Java-projektin. Joten aloitetaan dockerista:
docker build -f assistant-web-api/qke/Dockerfile -t docker-registry.qiyi.virtual/mbd-ai/assistant-web-api-test:$tag . --build-arg dc_env=test
Avainsanat,build-arg , aseta parametri, dc_env=test
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
Huomaa, että -P tarkoittaa profiilin asetusta
Mvn-komento edellisessä vaiheessa lisäsi -P Missä sitä käytetään? Tietenkin se on marven-määritystiedostossa, joka on pom.xml.
<profiles>
<profile>
<id>test</id>
<properties>
<profile.active>test</profile.active>
<log.env>test</log.env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profile.active>prod</profile.active>
<log.env>prod</log.env>
</properties>
</profile>
</profiles>
Yllä on 2 ympäristömuuttujaa lisätty.Jokaiselle muuttujalle asetetaan ominaisuudet, eliprofile.active
Missä tätä arvoa voidaan käyttää?
Käytä sitä pääsovellus.yml-tiedostossa!
server:
profiles:
active: @profile.active@
Määritä käytettävä profiili edellisen vaiheen profile.active-muuttujan arvon perusteella.
Siitä lähtien docker-paketista määritellyt muuttujat on välitetty yml-päätiedostoon. Mitä ali-yml-määrityksiä käytetään tässä tiedostossa riippumatta siitä, mikä arvo server.profiles.active on. Jos se on esimerkiksi testi, tiedoston application-test.yml konfiguraatio ladataan! ! !
Ensinnäkin Marven synkronoi ensin. Tarkista ympäristö synkronoinnin jälkeen.
Seuraavaksi käännä ja pakkaa paikallisesti ja määritä ympäristömuuttujat -P:n kautta:
Suorita lopuksi napsauttamalla alla olevan kuvan oikeaa yläkulmaa. Täytä aktiivisessa profiilissa vastaavat ympäristömuuttujat, kuten testi
Lopuksi voit napsauttaa Suorita!