构建第一个 Feat HTTP 服务
这篇指南带你从零写出一个最小的 Feat HTTP 服务。目标很简单:先把服务跑起来,再把默认输出换成你自己的响应。
你将构建什么
Section titled “你将构建什么”你将构建一个监听本机端口的 HTTP 服务。
- 第一个版本直接使用 Feat 的默认处理器
- 第二个版本显式注册
httpHandler(...) - 最终你会得到一个返回
Hello World的最小服务
- JDK 8 或更高版本
- Maven 3.0 或更高版本
- 一个熟悉的编辑器或 IDE
curl、浏览器或HTTPie,用于验证接口
如何完成这篇指南
Section titled “如何完成这篇指南”你可以从头新建一个 Maven 项目,也可以直接参考仓库里的示例代码:
feat-test/src/main/java/tech/smartboot/feat/demo/HelloFeat.javafeat-test/src/main/java/tech/smartboot/feat/demo/HelloWorld.java
如果你只是想快速感受 Feat 的编程模型,建议完整走一遍下面的步骤,不要一开始就跳进配置页。
创建项目并添加依赖
Section titled “创建项目并添加依赖”新建一个 Maven 项目,在 pom.xml 中加入 feat-core:
<dependency> <groupId>tech.smartboot.feat</groupId> <artifactId>feat-core</artifactId> <version>${feat.version}</version></dependency>编写第一个服务
Section titled “编写第一个服务”先写最小版本:
import tech.smartboot.feat.Feat;
public class HelloFeat { public static void main(String[] args) { Feat.httpServer().listen(); }}这段代码的含义非常直接:
Feat.httpServer()创建 HTTP 服务listen()启动监听- 如果你没有注册任何处理器,Feat 会返回一段默认响应,方便你先确认链路是否正常
运行 HelloFeat.main() 后,请访问 http://localhost:8080。

curl -i http://localhost:8080HTTP/1.1 200 OKServer: featContent-Type: text/html; charset=utf-8
Hello Feat如果你看到了 Hello Feat,说明三件事已经成立:
- 依赖引入没有问题
- Feat 服务已经真正启动
- 你的本机 HTTP 访问链路是通的
返回自定义响应
Section titled “返回自定义响应”接下来,把默认响应换掉:
import tech.smartboot.feat.Feat;
public class HelloWorld { public static void main(String[] args) { Feat.httpServer() .httpHandler(request -> request.getResponse().write("Hello World")) .listen(8081); }}这一次有两个变化:
- 通过
httpHandler(...)明确接管请求处理 - 把端口改成
8081,避免和上一个示例冲突
再访问一次:

curl -i http://localhost:8081HTTP/1.1 200 OKServer: featContent-Type: text/html; charset=utf-8
Hello World到这里,Feat Core 的最小服务模型就已经很清楚了:
- 创建服务
- 注册处理器
- 启动监听
接下来可以做什么
Section titled “接下来可以做什么”如果你准备继续往下走,有三条很自然的路径:
- 想把单个处理器扩展成多条路由:看 Router 路由组件
- 想调端口、线程数、调试模式和上传大小:看 ServerOptions 配置指南
- 想换成更接近 Spring Boot 的注解式开发体验:看 Feat Cloud 快速入门
端口已经被占用
Section titled “端口已经被占用”直接换端口即可:
Feat.httpServer().listen(9090);程序看起来启动了,但浏览器访问不到
Section titled “程序看起来启动了,但浏览器访问不到”先只检查三件事:
- 访问的端口是否和代码里一致
- 程序是否立即退出或报错
- 本机防火墙是否拦截了该端口
我是不是应该一开始就去看配置项
Section titled “我是不是应该一开始就去看配置项”不用。
先把服务跑起来,再去看配置页,理解会更快。