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

Application Properties

Bom dia , preciso criar um configurador e este deverá modificar meu application properties , minha dúvida é como posso fazer essa alteração , já que são aplicações diferentes. Pensei em colocar o application properties externo mas como faço para utilizar a mesma?

4 respostas

opa, nao acho que vai rolar... isso eh carregado no comeco da aplicacao e depois nao muda mais.... Se vc precisa que algum codigo leia configuracoes parametrizaveis, acho melhor vc guardar no banco e usar uma classe qualquer para carregar e ser usada pelas outras partes do projeto.

Sim Alberto Souza eu sei que ele é carregado no início da vida dá aplicação , porém esse configurador é pra isso já que cada cliente tem uma config diferente

solução!

Outra opção é utilizar um script externo em shell ou bash que rode durante a ação de publicação, antes de inicializar o servidor, que altere via sed ou algo assim alguns trechos do arquivo.

Aliás, essa técnica era utilizada pela própria Casa do Código apenas alguns meses atrás (utilizando o VRaptor e não o SpringBoot, mas a função é a mesma. O environment.properties era editado pelo script).

Se tiver interesse, pesquise sobre o assunto!

Arthur, aqui vai um exemplo de execução pré-deploy para um projeto Maven

Configuração no pom.xml:

<build>
    <plugins>
        <plugin>
            <artifactId>exec-maven-plugin</artifactId>
            <groupId>org.codehaus.mojo</groupId>
            <executions>
                <execution>
                    <id>Customize application.properties</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                    <configuration>
                        <executable>${basedir}/src/build/customize.sh</executable>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Script de customização:

#!/bin/bash
##customize.sh

#change project name key to "MeuNovoSistema"
sed -i -e 's/^projectName=.*/projectName=MeuNovoSistema/g' /src/.../application.properties