Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Sintaxes diferentes para definir as variáveis de ambiente

Por que no arquivo application.properties as variáveis de ambiente tem uma sintaxe para definir (cifrão e chaves):

spring.datasource.url=jdbc:postgresql://${DB_HOST}/${DB_NAME}

E na classe ConsultaChatGPT é definida de outra forma (System.getenv) ?

OpenAiService service = new OpenAiService(System.getenv("OPENAI_APIKEY"));
2 respostas
solução!

Quando o Spring carrega as propriedades no application.properties ele consegue substituir os trechos com ${} por variáveis de ambiente. Ele mesmo lê as variáveis de ambiente existentes no sistema e as substitui. No segundo caso é código java em si e não no contexto do Spring, então para conseguir pegar as variáveis tem que ser feito através do System.getenv.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Ok, entendi, obrigado...