2 votes

La définition programmatique de la propriété "spring.config.name" ne fonctionne pas

Selon cet article de blog à partir de décembre 2017, il est possible de changer le nom utilisé pour rechercher les fichiers de configuration de Spring Boot de manière programmatique comme ceci :

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class)
            .properties("spring.config.name:conf")
            .build()
            .run(args);
    }
}

J'ai essayé en utilisant la version de Spring Boot 1.5.9-RELEASE mais cela ne fonctionne pas. Réglage de spring.config.name comme un argument fonctionne :

mvn spring-boot:run -Dspring.config.name=conf

Cependant, je n'ai pas le contrôle des arguments transmis à mon application Spring Boot lorsqu'elle est lancée, ce n'est donc pas une option.

N'est-il plus possible de définir spring.config.name de manière programmatique, est-ce que je rate quelque chose ou est-ce un bug ?

1voto

Kyle Mayes Points 140

Ça ne répond pas directement à la question, mais j'ai fini par trouver une solution de contournement. En réglant le spring.config.name en l'ajoutant aux arguments fonctionne :

package com.ups.cep;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        List<String> arguments = new ArrayList<>(Arrays.asList(args));
        arguments.add("-Dspring.config.name=conf");
        SpringApplication.run(Application.class, arguments.toArray(new String[arguments.size()]));
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X