Kotlin / Javalin, управляете файлами конфигурации инструментов? - PullRequest
0 голосов
/ 10 февраля 2020

Какие существуют инструменты для управления файлами конфигурации (для каждой среды) для приложений Kotlin / Javalin? Альтернативы Konf (https://github.com/uchuhimo/konf)?

1 Ответ

0 голосов
/ 03 апреля 2020

Вот пример «ConfigTool». Вы можете расширить это, чтобы создать несколько объектов и анализировать несколько файлов. Я не могу полностью отдать ему должное, я изначально адаптировал это от кого-то другого:

package app.utils;

import app.pojos.DBProps;
import app.pojos.WebAppVars;

import java.io.FileInputStream;
import java.util.Properties;

public final class ConfigTool {


  //Create a connection parameter array for storing... connection parameters
  private static final DBProps sysParams = new DBProps();

  public static void load() {
    //Read configuration properties for where the DB is and how to connect, close program if catch exception
    Properties cfg_props = new Properties();
    try (FileInputStream configfile = new FileInputStream(WebAppVars.configLocation)) {
        cfg_props.load(configfile);
        sysParams.setDbAddr(cfg_props.getProperty("database.dbAddr"));
        sysParams.setDbUser(cfg_props.getProperty("database.dbUser"));
        sysParams.setDbPass(cfg_props.getProperty("database.dbPass"));
        sysParams.setDbType(cfg_props.getProperty("database.dbType"));
        sysParams.setDbName(cfg_props.getProperty("database.dbName"));
        sysParams.setDbAuth(cfg_props.getProperty("database.dbAuth"));

        //TODO Add more if statements to config tool to support larger array of SQL Servers
        if(sysParams.getDbType().equalsIgnoreCase("MSSQL")){
            sysParams.setDbConnStr("jdbc:sqlserver://" + sysParams.getDbAddr() + ";databaseName=" + sysParams.getDbName());
            sysParams.setDbDriver("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        }
    }
    catch (Exception e) {
        e.printStackTrace();
        System.exit(1);
    }
  }

  public static DBProps getSysParams(){
    return sysParams;
  }
}
...