https://github.com/lightbend/config
In version 0.0.9 added support for generating yaml files. Also retained support for the old format |
cmd/app generate cfg |
All comands related to generation you can find in this file cmd/app |
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 |
@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; } |
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(); |
Where we connect GlobalConfiguration as a bean and get a subclass postgres() with all the setting for the database |
cmd/app generate cfg-with-resolver |