Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For generation, a special utility project was created with the name configuration-generator

https://github.com/lightbend/config


Info

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:

...

After that according on property source initialize GlobalConfiguration bean (GlobalConfigurationProvider)

Here is an example

...

Image RemovedImage Removed

how the files are located:

Image AddedImage Added


...


Usage example 

First you need to fill in the configuration data

Code Block
languageyml
titleapplication.yaml
postgres:
  enabled: false
  name: "POSTGRES"
  driverClassName: "org.postgresql.Driver"
  jdbcUrl: "jdbc:postgresql://localhost:5432/playground_db"
  locationMigration: "classpath:db/migration/postgres"
  propertyPath: "postgres.jdbcUrl"
  users:
    runtime: "playground"
    flyway: "playground"
  passwords:
    runtime: "playground"
    flyway: "playground"
  hikari:
    connectionTimeout: 45000
    idleTimeout: 60000
    maxLifetime: 180000
    maximumPoolSize: 50
    minimumIdle: 5
    connectionInitSql: "SELECT 1"
    connectionTestQuery: "SELECT 1"
    poolName: "core-postgres-db-pool"
    autoCommit: true

...


After generation, this class with can be reused throughout the project

Code Block
languagejava
titleGlobalConfiguration
collapsetrue
@Getter
@Setter
@ConfigurationProperties(prefix = "postgres")
public static class Postgres {
    private Users users;
    private Passwords passwords;
    private Hikari hikari;
    private Boolean enabled;
    private String name;
    private String driverClassName;
    private String jdbcUrl;
    private String locationMigration;
    private String propertyPath;

    public Users users() {
        return users;
    }

    public Passwords passwords() {
        return passwords;
    }

    public Hikari hikari() {
        return hikari;
    }

    public Boolean enabled() {
        return enabled;
    }

    public String name() {
        return name;
    }

    public String driverClassName() {
        return driverClassName;
    }

    public String jdbcUrl() {
        return jdbcUrl;
    }

    public String locationMigration() {
        return locationMigration;
    }

    public String propertyPath() {
        return propertyPath;
    }


Example of use in flyway configuration:

...

Info

Where we connect GlobalConfiguration as a bean and get a subclass postgres() with all the setting for the database



...


PathResolver

In version 0.0.11 added the ability to change the values of parameters while the application is running

To use, you first need to generate the appropriate file

To generate use this command

Code Block
languagexml
cmd/app generate cfg-with-resolver

This command generates configuration class and config path resolver for application.yml

Next you have GlobalConfigurationPathResolver. You can use methods getValue and setNewValue. Both methods require the path attribute, for example (postgres.hikari.autoCommit)