### 手动添加路由到 Tio-boot
Tio-boot 框架提供了一种简单高效的方式来处理 HTTP 路由。虽然框架默认会自动扫描并添加带有 `@RequestPath` 注解的 Controller 到路由中,但在某些情况下,你可能需要手动添加路由。这可以通过实例化 `SimpleHttpRoutes` 类并向其中添加路由来实现。值得注意的是,
1.手动添加的路由将拥有比默认 `TioBootHttpRoutes` 更高的优先级。
2.手动添加路由不支持参数封装
#### 步骤 1:创建 Controller 类
首先,创建一个名为 `HelloController` 的类,它包含了两个处理 HTTP 请求的方法。每个方法接收一个 `HttpRequest` 对象,并返回一个 `HttpResponse` 对象。例如:
```java
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` 方法添加路由。
```java
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` 方法。