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!
java vertx system json configretriever vertx-config-path
Commentami!