手动添加路由到 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
路由映射到 HelloController
的 hi
方法,而 /hello
路由映射到 hello
方法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。