Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin/Javalin,管理配置文件工具?_Kotlin_Config_Javalin - Fatal编程技术网

Kotlin/Javalin,管理配置文件工具?

Kotlin/Javalin,管理配置文件工具?,kotlin,config,javalin,Kotlin,Config,Javalin,有哪些工具用于管理Kotlin/Javalin应用程序的配置文件(每个环境)? Konf()的替代方案?下面是一个“ConfigTool”示例。您可以将其展开以创建多个对象并解析多个文件。我不能完全相信它,我最初是从别人那里改编的: package app.utils; import app.pojos.DBProps; import app.pojos.WebAppVars; import java.io.FileInputStream; import java.util.Properti

有哪些工具用于管理Kotlin/Javalin应用程序的配置文件(每个环境)? Konf()的替代方案?

下面是一个“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;
  }
}

我通常构建一个“ConfigTool”类,该类通过一个加载方法加载配置文件。通常,我将类设置为final,以便可以从其他类静态访问其load方法。然后,我只需要为需要从文件中提取的任何类型的配置数据创建更多这些ConfigTool类。有多少配置文件是您真正需要使用的,您需要一个完整的额外工具/依赖项吗?很有趣,好的。谢谢分享。通常大约3-5个文件,dev/local、int、prod、验收测试int、验收测试prod。以及机器上通过CFT或其他设置的环境变量。