Usare un file JSON personale in Vert.x ConfigRetriever

Mattepuffo's logo
Usare un file JSON personale in Vert.x ConfigRetriever

Usare un file JSON personale in Vert.x ConfigRetriever

Supponiamo di avere un nostro file JSON in cui mettere alcune impostazioni che ci saranno utili.

Vert.x mette a disposizione diverse classi per gestire le configurazioni; in questo articolo vediamo come usare ConfigRetriever con il nostro file JSON.

Il file l'ho messo dentro src/main/resources/config.json:

{
  "env": "dev"
}

Di default Vert.x già usa le variabili d'ambiente; possiamo usare la classe System per sovrascrivere la proprietà vertx-config-path ed indicare il nostro file.

Poi leggiamo la configurazione e visualiziamo il valore.

Qui sotto un esempio di codice Java:

import com.zara.api.zara_api.utils.Config;
import io.vertx.config.ConfigRetriever;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Promise;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.Router;

public class MainVerticle extends AbstractVerticle {

  @Override
  public void start(Promise<Void> startPromise) {
    System.setProperty("vertx-config-path", "src/main/resources/config.json");
    ConfigRetriever retriever = ConfigRetriever.create(vertx);
    retriever.getConfig(json -> {
      JsonObject result = json.result();
      System.out.println(result.getString("env"));
    });

    Router router = Router.router(vertx);

    router.route("/").handler(routingContext -> {
      routingContext.response()
        .putHeader("content-type", "text/plain")
        .end("Hello from Vert.x!");
    });

    vertx.createHttpServer()
      .requestHandler(router)
      .listen(8888, http -> {
        if (http.succeeded()) {
          startPromise.complete();
          System.out.println("In ascolto su http://localhost:8888/");
        } else {
          startPromise.fail(http.cause());
        }
      });

  }
}

Enjoy!


Condividi

Commentami!