minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Em primeiro lugar, um projeto Java requer diferentes configurações de ambiente. Ao empacotar, as configurações correspondentes são usadas automaticamente. Então, como conseguir isso?
Crie ou adicione um arquivo application.yml no diretório src/main/resources do seu projeto Spring Boot. É aqui que o Spring Boot procura os arquivos de configuração por padrão. Este arquivo pode adicionar configurações comuns.
Em seguida, você também pode criar arquivos como application-test.yml, application-prod.yml, etc. no mesmo diretório. O Spring Boot reconhecerá automaticamente esses arquivos de configuração específicos do perfil. Você pode definir parâmetros para diferentes ambientes nesses arquivos, como endereços de banco de dados, endereços de cache redis, etc.
Ou seja, no diretório src/main/resources podem existir vários arquivos como este:
application.yml
application-prod.yml
application-test.yml
Em seguida, você pode usar application-test.yml e application-prod.yml para declarar duas variáveis com a mesma configuração, mas com valores diferentes.por exemplo
aplicação-teste.yml:
mysql:
url: https://xx.test.com/mysql
aplicação-prod.yml:
mysql:
url: https://xx.online.com/mysql
No código java, você pode usar este URL dinamicamente:
@Value("${mysql.url}")
protected String mysqlUrl;
Perfeito.
Então, como usar automaticamente o arquivo profile-specific.yml correspondente quando o sistema estiver em execução?Por favor veja abaixo
Vejamos como as variáveis de ambiente são passadas para o projeto, camada por camada, da rede externa.
Em primeiro lugar, um projeto Java geralmente é empacotado pelo docker. Então, vamos começar com o docker:
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
Palavras-chave,construir-arg , defina um parâmetro, 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}
Observe que -P significa definir perfil
O comando mvn na etapa anterior adicionou -P Onde é usado? Claro que está no arquivo de configuração do marven, que é 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>
Acima, 2 variáveis de ambiente são adicionadas.Para cada variável são definidas propriedades, ou seja,perfil.ativo
Onde esse valor pode ser usado?
Use-o no arquivo application.yml principal!
server:
profiles:
active: @profile.active@
Defina qual perfil usar com base no valor da variável profile.active na etapa anterior.
Desde então, as variáveis definidas no pacote docker foram passadas para o arquivo yml principal. Neste arquivo, qualquer que seja o valor server.profiles.active, qual configuração sub-yml será usada. Por exemplo, se for teste, a configuração do application-test.yml será carregada! ! !
Primeiro, o Marven sincroniza primeiro. Após a sincronização, verifique um ambiente.
Em seguida, compile e empacote localmente e especifique variáveis de ambiente por meio de -P:
Por fim, para executar, clique no canto superior direito da imagem abaixo. Haverá uma janela pop-up Editar Configuração. No Perfil Ativo, preencha as variáveis de ambiente correspondentes, como teste.
Finalmente, você pode clicar em Executar!