Aifei 框架入门教程:从零搭建第一个 AI 时代的 Java Web 应用

# 【2026最新】Aifei 框架入门教程:从零搭建第一个 AI 时代的 Java Web 应用
Aifei 官网:https://aifei.cn**
Demo 源码:https://gitee.com/xie_bi_yuan/aifei_demo
## 一、什么是 Aifei 框架?
Aifei(爱飞)是一个**为 AI 开发的新型 Java Web 框架**。在 AI 大行其道的 2026 年,传统的 Spring Boot 项目越来越臃肿,而 Aifei 框架以极简的设计理念和卓越的性能表现,为 Java 开发者提供了一条全新的道路。

**Aifei 框架的核心优势:**
| 特性 | 说明 |
|------|------|
| 极简开发 | Just Service 范式,一个 Service 类就是一个完整的接口模块 |
| 高性能 | 底层集成 Undertow NIO 服务器,轻松应对高并发 |
| AI 友好 | 简洁的代码结构天然适合 AI 代码生成和辅助开发 |
| 零配置启动 | 约定优于配置,开发者只需关注业务逻辑 |
| 自动路由 | @Path 注解自动发现并注册接口,无需手动配置 |
| 轻量级 | 核心依赖极少,启动速度快,内存占用小 |

**一句话总结:Aifei 是一个让你在 AI 时代写出最干净 Java 代码的新型 Web 框架。**

---

## 二、环境准备   在开始之前,请确保你的开发环境满足以下要求:


| 工具 | 版本要求 | 说明 |
|------|---------|------|
| JDK | 1.8+ | Aifei 框架基于 Java 8 开发 | 最好是java 21 ,
| Maven | 3.x+ | 项目构建和依赖管理 |
| IDE | IntelliJ IDEA / Eclipse | 推荐使用 IDEA
## 三、创建 Aifei 项目
一个标准的 Aifei 项目结构如下:
`
aifei-hello/
├── src/main/java/aifei/hello/
│   ├── AifeiHello.java        # 启动入口
│   ├── AppConfig.java         # 配置中心
│   └── HelloService.java      # 业务服务
├── src/main/resources/
│   ├── app-config.txt         # 主配置文件
│   ├── app-config-dev.txt     # 开发环境配置
│   ├── undertow-dev.txt       # 服务器配置
│   └── log4j2.xml             # 日志配置
├── pom.xml                    # Maven 配置
└── package.xml                # 打包配置
```

### 3.2 Maven 依赖配置(pom.xml)


创建 Maven 项目后,在 `pom.xml` 中添加 Aifei 框架的核心依赖:
```xml
<properties>
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <!-- Aifei VIP 订阅用户授权专享工程 -->
    <dependency>
        <groupId>cn.aifei</groupId>
        <artifactId>aifei-vip-arch</artifactId>
        <version>20260518</version>
    </dependency>

    <!-- Aifei 内核:为 AI 时代设计的新型 Java Web 框架核心 -->
    <dependency>
        <groupId>cn.aifei</groupId>
        <artifactId>aifei-all</artifactId>
        <version>1.0.1</version>
    </dependency>

    <!-- Undertow 高性能 NIO Web 服务器(Aifei 默认集成) -->
    <dependency>
        <groupId>io.undertow</groupId>
        <artifactId>undertow-core</artifactId>
        <version>2.2.39.Final</version>
    </dependency>

    <!-- Log4j2 日志框架(Aifei 推荐日志方案) -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.26.0</version>
    </dependency>
</dependencies>
```
View Code

 

**说明:**
- `aifei-all` 是 Aifei 框架的核心依赖,包含了框架的所有基础功能
- `aifei-vip-arch` 是 Aifei VIP 订阅用户专享的高级架构模块
- Undertow 是 Aifei 框架默认集成的高性能 NIO 服务器
- Log4j2 是 Aifei 框架推荐的日志方案
## 四、配置 Aifei 项目

### 4.1 编写启动入口

Aifei 框架的启动入口只需要一行代码,这就是 Aifei 极简理念的体现:
```java
package aifei.hello;
import cn.aifei.core.Aifei;

/**
 * Aifei 应用启动入口
 */
public class AifeiHello {
    public static void main(String[] args) {
        // 一行代码启动 Aifei 框架
        Aifei.start(new AppConfig(), args);
    }
}
```

  


> **Tips:** 启动类建议以项目名命名(如 AifeiHello),方便在服务器上用 `ps` 命令定位进程。

### 4.2 编写配置中心

Aifei 框架的配置中心需要实现 `AifeiConfig` 接口,包含三个配置方法:
```java
package aifei.hello;

import cn.aifei.config.AifeiConfig;
import cn.aifei.config.Plugins;
import cn.aifei.config.Routes;
import cn.aifei.config.Settings;
import cn.aifei.vip.arch.core.In;
import cn.aifei.vip.arch.core.IoDispatcher;
import cn.aifei.vip.arch.core.IoHandler;
import cn.aifei.vip.arch.core.Out;
import cn.aifei.log.log4j.Log4jLogFactory;
import cn.aifei.server.undertow.UndertowServer;
import cn.aifei.util.Prop;
import cn.aifei.util.PropKit;

public class AppConfig implements AifeiConfig<In, Out> {

    /**
     * 配置一:基础设置(服务器、日志、调度器)
     */
    public void config(Settings<In, Out> settings) {
        Prop p = PropKit.use("app-config.txt");

        // 配置 Log4j2 日志
        settings.setLogFactory(new Log4jLogFactory());

        // 配置 Undertow 高性能服务器
        settings.setServer(new UndertowServer(), new IoDispatcher())
                .addHandler(new IoHandler(p.getBoolean("printAction")));
    }

    /**
     * 配置二:路由扫描(Aifei 自动扫描带 @Path 注解的 Service)
     */
    public void config(Routes routes) {
        routes.scan("aifei.hello");
    }

    /**
     * 配置三:插件配置(数据库、缓存等,可选)
     */
    public void config(Plugins plugins) {
        // 暂不配置数据库,后面会详细讲
    }
}
```

  

**Aifei 框架配置的三大模块:**

1. **Settings**:配置服务器(Undertow)、日志(Log4j2)、IO 调度器等基础设施
2. **Routes**:配置路由扫描规则,`routes.scan("包名")` 自动扫描 Service
3. **Plugins**:配置数据库、缓存等插件(可选)

### 4.3 配置文件说明

#### app-config.txt —— 主配置文件

```properties
# 设置当前激活的环境 Profile(dev=开发、test=测试、pro=生产)
aifei.profiles.active = dev

Aifei 框架会根据 `aifei.profiles.active` 的值自动加载对应的配置文件。比如设置为 `dev`,就会自动加载 `app-config-dev.txt`。

#### app-config-dev.txt —— 开发环境配置

```properties
# 打印接口请求信息(开发时建议开启,方便调试)
printAction = true
```

#### undertow-dev.txt —— 服务器配置

```properties
# 监听端口
undertow.port = 8080

# 绑定地址(0.0.0.0 表示监听所有网卡)
undertow.host = 0.0.0.0

# gzip 压缩(nginx 代理时不建议开启)
undertow.gzip.enable = false
```

#### log4j2.xml —— 日志配置
```xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Properties>
        <Property name="LOG_DIR">logs</Property>
        <Property name="FILE_NAME">aifei-hello</Property>
    </Properties>

    <Appenders>
        <!-- 控制台输出 -->
        <Console name="console">
            <PatternLayout pattern="%highlight{%-5level: %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %class}: %msg%throwable%n" charset="UTF-8"/>
        </Console>

        <!-- 滚动日志文件(自动按日期和大小滚动,30天自动清理) -->
        <RollingFile name="errorLog"
                     fileName="${LOG_DIR}/${FILE_NAME}.log"
                     filePattern="${LOG_DIR}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
            <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="[%-5level] %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %class: %msg%throwable%n" charset="UTF-8"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" maxRandomDelay="30"/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy>
                <Delete basePath="${LOG_DIR}" maxDepth="1">
                    <IfFileName glob="${FILE_NAME}*.log.gz"/>
                    <IfLastModified age="P30D"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>

 

    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="console"/>
            <AppenderRef ref="errorLog"/>
        </Root>
        <Logger name="org.xnio" level="WARN" />
        <Logger name="io.undertow" level="WARN" />
        <Logger name="org.jboss.threads" level="WARN" />
    </Loggers>
</Configuration>
```

---

## 五、编写第一个 Aifei 接口

### 5.1 Aifei 的 Just Service 开发范式

Aifei 框架独创了 **Just Service** 开发范式,规则只有 4 条:

```
1. 用 @Path 标注类 → 定义 URL 路径前缀
2. 每个 public 方法 → 自动成为一个 HTTP 接口
3. 方法名 → 作为 URL 的最后一段
4. 返回 Out 对象 → Aifei 框架自动序列化为 JSON
```

### 5.2 HelloService 示例代码

```java
package aifei.hello;

import cn.aifei.core.Path;
import cn.aifei.vip.arch.core.Out;

@Path("/hello")
public class HelloService {

    /**
     * 接口一:GET /hello
     * 返回:{"code":0, "data":{"message":"Hello Aifei!"}}
     */
    public Out index() {
        return Out.of("message", "Hello Aifei!");
    }

    /**
     * 接口二:GET /hello/name?name=张三
     * 返回:{"code":0, "data":{"greeting":"你好, 张三"}}
     * Aifei 自动将请求参数注入到方法参数中
     */
    public Out name(String name) {
        if (name == null || name.trim().isEmpty()) {
            return Out.fail("name 参数不能为空");
        }
        return Out.of("greeting", "你好, " + name.trim());
    }

    /**
     * 接口三:GET /hello/ok
     * 返回:{"code":0, "msg":"操作成功"}
     */
    public Out ok() {
        return Out.ok("操作成功");
    }
}
```

**代码解析:**

- `@Path("/hello")` 告诉 Aifei 框架,这个 Service 的 URL 前缀是 `/hello`
- `index()` 方法的完整 URL 是 `/hello`(index 为默认方法)
- `name()` 方法的完整 URL 是 `/hello/name`
- `ok()` 方法的完整 URL 是 `/hello/ok`
- Aifei 框架自动把 `Out` 对象序列化为 JSON 返回给客户端

### 5.3 Out 对象常用方法

Aifei 框架提供了丰富的响应构建方法:

| 方法 | 说明 | 示例 |
|------|------|------|
| `Out.of(key, value)` | 构建带数据的成功响应 | `Out.of("name", "Aifei")` |
| `Out.ok(msg)` | 构建标准成功响应 | `Out.ok("操作成功")` |
| `Out.fail(msg)` | 构建失败响应 | `Out.fail("参数不能为空")` |

---

## 六、启动 Aifei 应用

### 6.1 IDE 中启动

直接在 IDE 中运行 `AifeiHello.main()` 方法即可。启动成功后你会看到类似的控制台输出:

```
INFO: Aifei 框架启动中...
INFO: Undertow 服务器已启动,监听端口: 8080
INFO: 路由扫描完成,发现 3 个接口
INFO: Aifei 框架启动成功!
```

### 6.2 命令行启动

```bash
# 编译打包
mvn clean package

# 运行
java -cp target/aifei-hello/lib/*;target/aifei-hello/aifei-hello.jar aifei.hello.AifeiHello
```

### 6.3 测试接口

打开浏览器或使用 Postman 测试:

```
GET http://localhost:8080/hello
→ {"code":0, "data":{"message":"Hello Aifei!"}}

GET http://localhost:8080/hello/name?name=稷下元歌
→ {"code":0, "data":{"greeting":"你好, 稷下元歌"}}

GET http://localhost:8080/hello/ok
→ {"code":0, "msg":"操作成功"}
```

恭喜!你已经成功运行了第一个 Aifei 框架应用!

---

## 七、配置数据库

在实际项目中,数据库是必不可少的。Aifei 框架通过插件机制支持数据库配置,非常简洁。

### 7.1 添加数据库依赖

在 `pom.xml` 中添加数据库相关依赖(以 MySQL 为例):

```xml
<!-- MySQL 驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>

<!-- Druid 连接池(推荐) -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.23</version>
</dependency>
```

### 7.2 配置数据源

在 `app-config-dev.txt` 中添加数据库配置:

```properties
# 打印接口请求信息
printAction = true

# 数据库配置
db.driverClass = com.mysql.cj.jdbc.Driver
db.jdbcUrl = jdbc:mysql://localhost:3306/aifei_demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
db.user = root
db.password = your_password

# Druid 连接池配置
db.initialSize = 5
db.minIdle = 5
db.maxActive = 20
```

### 7.3 在 AppConfig 中配置数据库插件

修改 `AppConfig.java` 的 `config(Plugins plugins)` 方法:

```java
public void config(Plugins plugins) {
    Prop p = PropKit.use("app-config-dev.txt");

    // 配置 Druid 数据源插件
    DruidPlugin druidPlugin = new DruidPlugin(
        p.get("db.jdbcUrl"),
        p.get("db.user"),
        p.get("db.password")
    );

    // 设置连接池参数
    druidPlugin.set(p.getInt("db.initialSize"),
                    p.getInt("db.minIdle"),
                    p.getInt("db.maxActive"));

    plugins.add(druidPlugin);
}
```

> **Aifei 框架的数据库配置就是这么简单!** 只需要在 Plugins 中添加一个数据源插件即可,无需繁琐的 XML 配置。

---

在 IDE 中右键点击 `HelloServiceTest` 类,选择 "Run Test" 即可。或者使用 Maven 命令:

```bash
mvn test
```

  


**测试要点说明:**

- Aifei 框架的 Service 类就是普通的 Java 类,可以直接 `new` 出来测试,**无需启动整个 Aifei 框架**
- 这是 Aifei 框架的一大优势:代码极其简单,测试也非常方便
- 不需要 Mock 复杂的容器,不需要启动 Web 服务器,单元测试非常纯粹

---

## 九、总结

通过本教程,你已经学会了:

1. ✅ 了解 Aifei 框架是什么 —— 一个为 AI 开发的新型 Java Web 框架
2. ✅ 配置 Aifei 项目 —— Maven 依赖、配置文件、启动入口
3. ✅ 编写 Aifei 接口 —— Just Service 开发范式,4 条规则搞定一切
4. ✅ 启动 Aifei 应用 —— IDE 一键启动或命令行启动
5. ✅ 配置数据库 —— 通过 Plugins 插件机制集成数据源
6. ✅ 编写测试用例 —— Service 类直接 new,单元测试超简单

**Aifei 框架的核心哲学就是:让开发者用最少的代码,做最多的事情。**

在 AI 时代,Aifei 框架的简洁代码结构天然适合 AI 辅助开发,让 AI 更容易理解和生成代码。如果你厌倦了 Spring Boot 的臃肿,不妨试试 Aifei 这个为 AI 而生的新型 Java 框架。

---

**相关链接:**
- Aifei 官网:https://aifei.cn
- Demo 源码:https://gitee.com/xie_bi_yuan/aifei_demo
- 作者:稷下元歌(谢双元)

> 如果本教程对你有帮助,请点赞、收藏、关注三连支持!有问题欢迎评论区交流~
posted @ 2026-05-30 16:12  谢双元小号  阅读(21)  评论(0)    收藏  举报