手动添加路由到 Tio-boot

Tio-boot 框架提供了一种简单高效的方式来处理 HTTP 路由。虽然框架默认会自动扫描并添加带有 @RequestPath 注解的 Controller 到路由中,但在某些情况下,你可能需要手动添加路由。这可以通过实例化 SimpleHttpRoutes 类并向其中添加路由来实现。值得注意的是,

  • 手动添加的路由将拥有比默认 TioBootHttpRoutes 更高的优先级。
  • 手动添加路由不支持参数封装

步骤 1:创建 Controller 类

首先,创建一个名为 HelloController 的类,它包含了两个处理 HTTP 请求的方法。每个方法接收一个 HttpRequest 对象,并返回一个 HttpResponse 对象。例如:

package com.litongjava.ai.chat.controller;

import com.litongjava.tio.http.common.HttpRequest;
import com.litongjava.tio.http.common.HttpResponse;
import com.litongjava.tio.http.server.util.Resps;

public class HelloController {

  public HttpResponse hello(HttpRequest httpRequest) {
    return Resps.txt(httpRequest, "hello");
  }

  public HttpResponse hi(HttpRequest httpRequest) {
    return Resps.txt(httpRequest, "hi");
  }
}

在这个例子中,hello 方法返回文本 "hello",而 hi 方法返回文本 "hi"。

步骤 2:定义并配置 HttpRoutes

接下来,定义一个配置类 DefineHttpRoutesConfig。在这个类中,你将实例化 SimpleHttpRoutes 并添加自定义路由。

使用 @BeforeStartConfiguration 注解标记这个配置类,这样框架会在启动前加载它。通过 @Bean 注解定义一个 HttpRoutes 类型的方法 httpRoutes。在这个方法中,首先通过 Aop.get 方法获取 HelloController 的实例。然后,创建一个 SimpleHttpRoutes 实例,并使用 add 方法添加路由。

package com.litongjava.ai.chat.config;

import com.litongjava.ai.chat.controller.HelloController;
import com.litongjava.jfinal.aop.Aop;
import com.litongjava.jfinal.aop.annotation.Bean;
import com.litongjava.jfinal.aop.annotation.BeforeStartConfiguration;
import com.litongjava.tio.http.server.handler.HttpRoutes;
import com.litongjava.tio.http.server.handler.SimpleHttpRoutes;

@BeforeStartConfiguration
public class DefineHttpRoutesConfig {

  @Bean
  public HttpRoutes httpRoutes() {
    HelloController helloController = Aop.get(HelloController.class);
    HttpRoutes simpleHttpRoutes = new SimpleHttpRoutes();
    simpleHttpRoutes.add("/hi", helloController::hi);
    simpleHttpRoutes.add("/hello", helloController::hello);
    return simpleHttpRoutes;
  }
}

在上述配置中,/hi 路由映射到 HelloControllerhi 方法,而 /hello 路由映射到 hello 方法。


李通
215 声望0 粉丝