首页 > 编程语言 >Java反应式编程(3)

Java反应式编程(3)

时间:2022-11-16 07:44:07浏览次数:44  
标签:username Java 编程 反应式 context println password queryParams vertx

您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~

 

在前面的文章中已经把vert.x框架给跑起来了,但是实际开发中服务端是需要响应客户端的请求的,所以肯定需要增加接口,但是该怎么加呢?有的人倾向于去搜索引擎找答案,其实还有一个比较好的方式是去官网看看有啥可以用的资料,比如说打开反应式编程的官网就能直接找到最新最准确的文档:

 

 

 

可以看到,点击进入【Vert.x Web】之后,再在左边浏览,然后点击【Routing by HTTP method】:

 

 

 

为了节约大家的时间,我就直接把代码展示出来了。

先创建了接口路由和GET请求:

// 创建路由
Router router = Router.router(vertx);

// 创建一个GET请求
router.route(HttpMethod.GET, "/vertx/get")
  .handler(context -> {
    MultiMap queryParams = context.queryParams();
    String username = queryParams.contains("username") ? queryParams.get("username") : "unknown";
    String password = queryParams.contains("password") ? queryParams.get("password") : "unknown";
    context.json(
      new JsonObject()
        .put("username", username)
        .put("password", password)
    );
  });

 

 

再创建POST请求和HTTP服务

// 创建一个POST请求(用Postman测试)
router.route(HttpMethod.POST, "/vertx/api/:id/:username/")
  .handler(context -> {
    String id = context.pathParam("id");
    String username = context.pathParam("username");
    System.out.println(id + " - " + username);
    context.json(
      new JsonObject()
        .put("errcode", "200")
        .put("message", "success")
    );
  });

// 创建HTTP服务
vertx.createHttpServer().requestHandler(router).listen(8888, http -> {
  if (http.succeeded()) {
    startPromise.complete();
    System.out.println("HTTP server started on port 8888");
  } else {
    startPromise.fail(http.cause());
  }
});

 

 

现在可以先把代码运行一下看看,比如在浏览中访问

http://localhost:8080/vertx/get?username=xiangwang&password=123456

就能看到返回的JSON数据:

 

 

 

然后在Postman中访问POST请求,也能看到返回的JSON数据

 

 

 

现在Web的功能已经演示完了,接下来再来看看数据库的,同样可以去官网 找文档,可以看到,vertx支持大部分主流的SQL和NoSQL。

 

 

 

还是和之前一样,为了节约大家的时间,我就直接把MySQL的演示代码贴出来了。下面的配置是我电脑里面的MySQL数据库连接:

// 创建MySQL连接
MySQLConnectOptions connectOptions = new MySQLConnectOptions()
  // 端口号
  .setPort(3306)
  // IP地址或者域名
  .setHost("192.168.227.100")
  // 数据库
  .setDatabase("third")
  // 用户名
  .setUser("root")
  // 密码
  .setPassword("123456");
// 连接池选项
PoolOptions poolOptions = new PoolOptions().setMaxSize(5);
// 创建连接池
MySQLPool client = MySQLPool.pool(vertx, connectOptions, poolOptions);
// 简单查询
client.query("SELECT * FROM apply_info")
  .execute(ar -> {
    if (ar.succeeded()) {
      RowSet<Row> result = ar.result();
      System.out.println("获取到了 " + result.size() + " 行数据");
      for (Row row : result) {
        System.out.println("appid = " + row.getString("appid"));
      }
    } else {
      System.out.println("Failure: " + ar.cause().getMessage());
    }
    // 关闭
    client.close();
  });

 

有个小地方,如果提示报错:

 

 

 

只需要把代码中的【MySQLPool.pool(connectOptions, poolOptions);】改成【MySQLPool.pool(vertx, connectOptions, poolOptions);】就行了。

这就是最基础的反应式编程的代码示例了。虽然它还没有大规模应用,但是管它呢,先卷起来再说。

 

 


 

 

感谢您的大驾光临!咨询技术、产品、运营和管理相关问题,请关注后留言。欢迎骚扰,不胜荣幸~

 

标签:username,Java,编程,反应式,context,println,password,queryParams,vertx
From: https://www.cnblogs.com/xiangwang1111/p/16893916.html

相关文章

  • python神经网络编程
    计算机系统:输入->(计算)->输出建立模型可以模拟事情的运作神经网络的基本思想:持续细化误差值。大的误差需要大的修正值,小的误差需要小的修正值。尝试得到一个答案,并多......
  • java基础之数组
    一、数组的定义与基本语法1、定义a.数组的四个基本特点:1、其长度是确定的,数组一旦被创建,它的大小就是不可以改变的;2、其元素必须是相同类型,不允许出现混合类型。3、数......
  • javac java file path
    1.packagemustcorrespondtofilepathpackageiscom.challengerpathmustbecom/challenger/ 2.javacuse-dtooutputclassesintofilepathautomaticlyja......
  • JAVA入门
    数据类型:分为基本数据类型和引用数据类型  基本类型分为四类八种  byte的取值范围在0-127  在定义long类型时,要在数据未部加L,在定义float类型时,也要在尾部......
  • java编程中的断言工具类(org.springframework.util.Assert)---Spring框架
    一、什么是断言断言(Assertion)是Java中一条语句,包含一个布尔表达式。当布尔值为真,程序则被认为是正确的;当布尔值为假,则系统......
  • JavaScript函数--"check"
    JS中一个较常见的函数"checkForm"。是用来检验表单信息的正确性。步骤如下:1:表单<form>添加提交事件<formaction="#"method="get"name="regForm"οnsubmit="returnc......
  • java——API——ArrayList集合
                     ArrayList集合的概述和基本使用                        Arr......
  • Java 内存模型及若干相关问题
    java的内存模型的理解java的内存模型是一种抽象,对java语言在不同硬件平台上运行的差异的一种抽象描述,目的是屏蔽不同硬件平台之间的差异。JMM定义了线程和主存之间的访......
  • JavaScript基础知识——数据类型
    数据类型在JavaScript中有8中基本数据类型,7种原始类型和1种引用类型。可以将任何类型的值存入变量。例如,一个变量可以在前一刻是个字符串,下一个就存储一个数字。如:letm......
  • 网络编程基础知识
    今日内容概要软件开发架构分类网络编程基础知识OSI七层模型物理层数据链路层网络层传输层今日内容详细软件开发架构分类软件开发架构分为两种,一种是C/S(客......