-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration de l'application
mekor-dev edited this page Sep 29, 2020
·
3 revisions
Pour ajouter des propriétés de configuration de l'application dépendant de l'environnement, j'utilise les profiles Maven et Properties Maven Plugin
Doc: https://www.mojohaus.org/properties-maven-plugin
Pour renseigner une propriété pour un environnement spécifique, on utilise les profils:
<profile>
<id>profileName</id>
<properties>
<property.name>value</property.name>
</properties>
</profile>On peut ensuite build projet en spécifiant un profil:
mvn clean compile package -PprofileName
Ce plugin écrit, lors du build maven, les properties renseignées dans le pom.xml dans le fichier spécifié (ici app-config.properties).
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>write-project-properties</goal>
</goals>
<configuration>
<outputFile>${project.build.outputDirectory}/app-config.properties</outputFile>
</configuration>
</execution>
</executions>
</plugin>Pour l'exemple de profil précédent, le plugin écrira dans le fichier :
property.name=value
La class AppConfig lis le fichier app-config.properties et stocke les propriétés en tant qu'attribut. Comme cette classe est ApplicationScoped, elle peut être accéder dans toute l'application.
@Inject
@InjectableResource(location = "app-config.properties")
private Properties configProps;
public void init(@Observes @Initialized(ApplicationScoped.class) Object init) {
log.debug("Entering init()");
// Setting properties
property = configProps.getProperty("property.name");
// Logging properties
log.info("-------------------------------------------------");
log.info("AppConfig controller has inited with following values:");
log.info("Property: {}", property);
}@Inject
private AppConfig appConfig;
public void getProperty(){
return appConfig.getProperty();
}