Teknologian jakaminen

Kuinka konfiguroida erilaisia ​​ympäristömuuttujia ja periaatteita java-projekteille

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Kuinka määrittää erilaisia ​​profiileja

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
  • 1
  • 2
  • 3

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
  • 1
  • 2

application-prod.yml:

mysql:
  url: https://xx.online.com/mysql
  • 1
  • 2

Java-koodissa voit käyttää tätä URL-osoitetta dynaamisesti:

    @Value("${mysql.url}")
    protected String mysqlUrl;
  • 1
  • 2

Täydellinen.

Joten miten vastaavaa profile-specific.yml-tiedostoa käytetään automaattisesti, kun järjestelmä on käynnissä?Katso alla

Profiilin automaattisen vaihdon periaate

Katsotaanpa kuinka ympäristömuuttujat välitetään projektiin kerros kerrokselta ulkoisesta verkosta.
Ensinnäkin docker pakkaa yleensä Java-projektin. Joten aloitetaan dockerista:

  1. Docker pakkauskomento ympäristöparametreilla:
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
  • 1

Avainsanat,build-arg , aseta parametri, dc_env=test

  1. Docker-tiedosto, ilmoitadc_env, ja käytetään mvn-komentoon
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
  • 1
  • 2
  • 3

Huomaa, että -P tarkoittaa profiilin asetusta

  1. pom.xml, määritä erilaisia ​​ympäristöjä

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

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@
  • 1
  • 2
  • 3

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! ! !

Kuinka vaihtaa ympäristöä kehitysympäristössä

  1. Ensinnäkin Marven synkronoi ensin. Tarkista ympäristö synkronoinnin jälkeen.
    Lisää kuvan kuvaus tähän

  2. Seuraavaksi käännä ja pakkaa paikallisesti ja määritä ympäristömuuttujat -P:n kautta:
    Lisää kuvan kuvaus tähän

  3. Suorita lopuksi napsauttamalla alla olevan kuvan oikeaa yläkulmaa. Täytä aktiivisessa profiilissa vastaavat ympäristömuuttujat, kuten testi
    Lisää kuvan kuvaus tähän

  4. Lopuksi voit napsauttaa Suorita!