Vert.x 配置文件

编程教程 > Java > Vert.x (319) 2024-11-26 14:39:04

前言

这里主要讲解Vert.x配置文件的读取和使用,引用之前的项目《Vert.x 4 Web应用初识》

 

引入必要依赖

maven pom.xml

<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-config</artifactId>
<version>4.5.9</version>
</dependency>

主要是config包

项目结构参考

Vert.x 配置文件_图示-66954f180c284f77bb0d14414b6726cc.png
项目结构

配置使用讲解

根据vert.x官方文档,配置有很多种加载方法,这里以文件加载方法作为讲解,更多请参考Config | Eclipse Vert.x (vertx.io)

resources/conf 目录下创建config.json 配置文件,内容如下参考:

{
"vertx": {
"eventLoopPoolSize": 2,
"workerPoolSize": 20,
"blockedThreadCheckInterval": 999999999,
"maxEventLoopExecuteTime": 999999999,
"maxWorkerExecuteTime": 999999999,
"eventBusOptions": {
"connectTimeout": 1800000
}
},
"server": {
"port": 8088,
"contextPath": "/"
}
}
 

创建一个App类用作启动类(注意打包要用这个类不用默认的MainVerticle了)

代码

@Slf4j
public class App {
public static void main(String[] args) {
Vertx tempVertx = Vertx.vertx();

// ConfigStoreOptions file = new ConfigStoreOptions()
// .setType("file")
// .setFormat("properties")
// .setConfig(new JsonObject().put("path", "vertx.properties"));
// ConfigRetrieverOptions options = new ConfigRetrieverOptions()
// .addStore(file);
// ConfigRetriever retriever = ConfigRetriever.create(tempVertx , options);

ConfigRetriever retriever = ConfigRetriever.create(tempVertx);
retriever.getConfig().onComplete(json -> {
tempVertx .close().onComplete(asyncResult -> {
log.info("tempVertx vertx closed");
});
JsonObject result = json.result();
log.info("config info :{}",result.encode());

JsonObject vertxConfig = result.getJsonObject("vertx");
JsonObject serverConfig = result.getJsonObject("server");

Vertx vertx = Vertx.vertx(new VertxOptions(vertxConfig));

vertx.deployVerticle(MainVerticle.class.getName(),
new DeploymentOptions().setConfig(serverConfig));

});

}

 

//    ConfigStoreOptions file = new ConfigStoreOptions()
//      .setType("file")
//      .setFormat("properties")
//      .setConfig(new JsonObject().put("path", "vertx.properties"));
//    ConfigRetrieverOptions options = new ConfigRetrieverOptions()
//      .addStore(file);
//    ConfigRetriever retriever = ConfigRetriever.create(tempVertx , options);

以上注释掉的代码可以自定义设置配置文件路径,默认读取的是resources/conf/config.json 配置文件

 

MainVerticle 代码

@Slf4j
public class MainVerticle extends AbstractVerticle {

@Override
public void start(Promise<Void> startPromise) throws Exception {

Router router = Router.router(vertx);

Integer httpPort = config().getInteger("port", 8080);
log.info("HTTP port: {}", httpPort);
vertx.createHttpServer()
.requestHandler(router)
.listen(httpPort, result -> {
if (result.succeeded()) {
startPromise.complete();
}else {
startPromise.fail(result.cause());
}
});
}
}

 

启动项目,观察日志输出的端口

Vert.x 配置文件_图示-172ef448f59443c0842d28abd6df33cc.png
启动

需要注意,此处我们是以App类启动的,非io.vertx.core.Launcher

从上图可以看到端口为配置文件端口非默认端口,与预期结果一致。

注意,为了打包后能一致还需要修改pom.xml配置

Vert.x 配置文件_图示-92d445ffe8c44b2dad48c116121e103f.png
修改pom的launcher.class

修改pom的launcher.class,从MainVerticle 修改为App

Vert.x 配置文件_图示-3640ddf1f3444c019155aaf9b5a6f5a9.png
对比修改前后打包运行的情况

对比修改前后打包运行的情况可以看到,如果不修改pom.xml则配置无法生效。

 

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
前言这里主要讲解Vert.x配置文件的读取和使用,引用之前的项目《Vert.x 4 Web应用初识》 引入必要依赖maven pom.xml&lt;dependenc
前言项目由之前的第一个vert.x 4 项目改编而来,vert.x项目创建参考: vert.x 4 web应用编写修改MainVerticle文件,内容如下:p
前言最新的Ver.x 4 从idea工具运行启动,并访问。项目创建通过vert.x官网生成器完成。Vert.x 4项目创建打开vert.x官网项目生成地址,ht
前言Vert.x 中实现全局数据共享,如环境参数等。Vertx数据共享实现共享数据存入/更新SharedData sharedData = vertx.shar
Vert.x java 入门,Vert.x这个框架在常规的web业务开发中估计还不是很成熟。但是了解了他的一些原理我觉得可以有一番作为。今天主要简单讲解下eclipse Vert.x是什么有什么...
前言项目创建参考之前的《Vert.x 4 Web应用初识》。本文通过Vert.x实现了REST接口的CRUD操作。通过本教程你可以获得以下内容vert.x项目中
前言文件上传在web应用比较常见,本文以vert.x web实现文件上传功能。引用之前的项目《Vert.x 4 Web应用初识》作为基础,添加了日志。 Vert
前言vert.x 默认是没有像spring的依赖注入的,需要自己结合vertx-service-proxy插件实现。本文引用项目为基础《Vert.x 4 Web
前言Vert.x Router路由中多个处理器之间通过RoutingContext共享数据实现。 Vert.x Router 上下文数据数据设置routingC
前言Web项目开发一般接口入参都有校验需求,Vert.x 4 目前已有插件实现参数校验,引用之前的项目《Vert.x 4 Web应用初识》源码 引入验证插件ma
前言本文主要讲解在Vert.x环境下与Mysql数据库连接和操作,实现基础的增删改查和事务,以及REST接口返回数据库中查询结果。项目引用之前的《Vert.x
前言创建一个常规的web项目肯定需要一个模板引擎来实现,引用之前的项目《Vert.x 4 Web应用初识》基础结构目前vert.x支持多款模板引擎,包括:MVE
前言接上一篇《Vert.x 4 Web应用初识》,在web应用中除了访问地址得到动态的信息还有静态的资源库访问,如 jQuery / bootstrap 等前端
前言前面已经讲述了在vertx中,如何实现服务的注册和使用,这里主要讲解接口的暴露层,在vertx中如何实现类似Spring MVC的Controller层。项
前言引用《Vert.x 4 Web REST CRUD接口应用》项目,加入日志依赖并编码实现类似Interceptor功能处理。vert.x日志集成参考《Ver