### 手动添加路由到 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` 方法。