le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Innanzitutto un progetto Java richiede diverse configurazioni di ambiente Durante il confezionamento vengono utilizzate automaticamente le configurazioni corrispondenti. Quindi, come ottenerlo?
Crea o aggiungi un file application.yml nella directory src/main/resources del tuo progetto Spring Boot. È qui che Spring Boot cerca i file di configurazione per impostazione predefinita. Questo file può aggiungere configurazioni comuni.
Quindi, puoi anche creare file come application-test.yml, application-prod.yml e così via nella stessa directory. Spring Boot riconoscerà automaticamente questi file di configurazione specifici del profilo. È possibile definire parametri per diversi ambienti in questi file, come indirizzi di database, indirizzi di cache Redis, ecc.
Cioè, nella directory src/main/resources, possono esserci diversi file come questo:
application.yml
application-prod.yml
application-test.yml
Quindi, puoi utilizzare application-test.yml e application-prod.yml per dichiarare due variabili con la stessa configurazione ma valori diversi.Per esempio
applicazione-test.yml:
mysql:
url: https://xx.test.com/mysql
applicazione-prod.yml:
mysql:
url: https://xx.online.com/mysql
Nel codice Java, puoi utilizzare questo URL in modo dinamico:
@Value("${mysql.url}")
protected String mysqlUrl;
Perfetto.
Quindi, come utilizzare automaticamente il file profile-specific.yml corrispondente quando il sistema è in esecuzione?Vedi sotto
Diamo un'occhiata a come le variabili di ambiente vengono passate al progetto livello per livello dalla rete esterna.
Prima di tutto, un progetto Java viene solitamente impacchettato tramite docker. Quindi, iniziamo con la finestra mobile:
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
Parole chiave,costruire-arg , imposta un parametro, 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}
Tieni presente che -P significa impostazione del profilo
Il comando mvn nel passaggio precedente ha aggiunto -P. Dove viene utilizzato? Ovviamente è nel file di configurazione di Marven, che è 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>
Sopra, vengono aggiunte 2 variabili di ambiente.Per ogni variabile vengono impostate le proprietà, ovveroprofilo.attivo
Dove può essere utilizzato questo valore?
Usalo nel file application.yml principale!
server:
profiles:
active: @profile.active@
Definire quale profilo utilizzare in base al valore della variabile profile.active nel passaggio precedente.
Da allora, le variabili definite dal pacchetto docker sono state passate al file yml principale. In questo file, qualunque sia il valore server.profiles.active, verrà utilizzata la configurazione sub-yml. Ad esempio, se è test, verrà caricata la configurazione di application-test.yml! ! !
Innanzitutto, Marven si sincronizza per primo. Dopo la sincronizzazione, controlla un ambiente.
Successivamente, compila e impacchetta localmente e specifica le variabili di ambiente tramite -P:
Infine, per eseguire, fai clic sull'angolo in alto a destra dell'immagine qui sotto. Verrà visualizzata una finestra pop-up Modifica configurazione. Nel profilo attivo, inserisci le variabili di ambiente corrispondenti, come test
Infine, puoi fare clic su Esegui!