hocon app { name = "MyApp" version = "1.0.0" debug = true servers = [ { ip = "127.0.0.1", port = 8080 }, { ip = "192.168.0.1", port = 8080 } ] } <dependency> <groupId>com.typesafe</groupId> <artifactId>config</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>io.circe</groupId> <artifactId>circe-config</artifactId> <version>0.8.0</version> </dependency> import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; public class AppConfig { private final Config config; public AppConfig() { this.config = ConfigFactory.load(); } public Config getConfig() { return config; } } import com.typesafe.config.Config; public class MyApp { public static void main(String[] args) { AppConfig appConfig = new AppConfig(); Config config = appConfig.getConfig(); String appName = config.getString("app.name"); int port = config.getInt("app.servers[0].port"); boolean debugMode = config.getBoolean("app.debug"); System.out.println("App Name: " + appName); System.out.println("Port: " + port); System.out.println("Debug Mode: " + debugMode); } } import com.typesafe.config.Config; import com.typesafe.config.ConfigException; import io.circe.config.syntax.ConfigOps; public class AppConfig { private final AppConfigTemplate template; public AppConfig() { Config config = ConfigFactory.load(); this.template = config.getOrElse("app", AppConfigTemplate.empty()).as[AppConfigTemplate]().right() .getOrElseThrow((ConfigException e) -> new RuntimeException("Invalid configuration: " + e.getMessage())); } public AppConfigTemplate getTemplate() { return template; } } public class MyApp { public static void main(String[] args) { AppConfig appConfig = new AppConfig(); AppConfigTemplate template = appConfig.getTemplate(); System.out.println("App Name: " + template.name); System.out.println("Version: " + template.version); System.out.println("Debug Mode: " + template.debug); for (Server server : template.servers) { System.out.println("Server IP: " + server.ip); System.out.println("Server Port: " + server.port); } } } public class AppConfigTemplate { public String name; public String version; public boolean debug; public List<Server> servers; public static AppConfigTemplate empty() { return new AppConfigTemplate(); } } public class Server { public String ip; public int port; }


上一篇:
下一篇:
切换中文