Intro
This module is used to set global configuration on application. This is achieved by generating class with configuration (GlobalConfiguration)
For generation, a special utility project was created with the name configuration-generator
Initially, there was support for the hocon format. To get acquainted with the syntax, you can follow the link
https://github.com/lightbend/config
In version 0.0.9 added support for generating yaml files. Also retained support for the old format
Run from CLI
To generate GlobalConfiguration class you need open a terminal and enter this command:
cmd/app generate cfg
All comands related to generation you can find in this file cmd/app
Flow
In resources folder are stored configuration files
Default file is a application.yaml/global.conf
During launching spring application according on all active profile all config/yaml files merge to GlobalConfiguration instance and save as a map to spring property source (it happens in PropertySourcesApplicationContextInitializer)
After that according on property source initialize GlobalConfiguration bean (GlobalConfigurationProvider)
Here is an example how the files are located:
Usage example
After generation, this class with can be reused throughout the project
Example of use in flyway configuration:
GlobalConfiguration.Postgres postgres = globalConfiguration.postgres(); FluentConfiguration fluentConfiguration = Flyway.configure() .dataSource(postgres.jdbcUrl(), postgres.users().flyway(), postgres.passwords().flyway()) .sqlMigrationPrefix("") .locations(postgres.locationMigration()) .baselineOnMigrate(true); Flyway flyway = fluentConfiguration.load(); flyway.migrate();