ruwebframe 0.1.6

a simple webframe for rust actix-web, based on rudi and rbatis.
Documentation
 
## webserver 目录结构


```
webserver/
├── mod.rs          — 模块入口,导出子模块
├── ruapp.rs        — RuApp 核心结构体,封装 Actix 启动逻辑
├── ruapp_init.rs   — DI 自动注入文件(自动生成)
├── start_web.rs    — Web 服务启动入口
├── example.rs      — 旧示例代码(全部注释)
└── readme.MD       — 说明文档
```

### 数据流


```
start_web::start_web()
    ├─ 有命令行参数 → rucmd::execute() → ctlc() 阻塞等待
    └─ 无参数 → find_bean_ruapp().run()
                    ├─ rucfg 读取配置端口
                    ├─ HttpServer::new(move || {
                    │      App::new().configure(|cfg| {
                    │          with_container_mut(|c| c.apply_routes(cfg))
                    │      })
                    │  })
                    └─ .bind(("0.0.0.0", port)).run().await
```

### 各文件职责


| 文件 | 职责 | 关键内容 |
|------|------|---------|
| `mod.rs` | 模块导出 | `pub mod example`, `pub mod ruapp_init`, `pub mod start_web` |
| `ruapp.rs` | 核心 | `RuApp` 结构体,`run()` 启动 HttpServer,`str2i32()` 工具方法 |
| `ruapp_init.rs` | DI 注册 | `#[ctor]` 自动注册 `RuApp` 到 DI 容器 |
| `start_web.rs` | 入口 | `start_web()` 判断命令行参数,分发到 cmd 或 web |
| `example.rs` | 历史 | 全部注释掉的旧代码示例 |

### 关键依赖链


```
start_web → ruapp_init(ctor) → DI 注册 RuApp
start_web → rucmd(命令行) 或 ruapp.run()
ruapp.run() → rucfg(配置) → rulog(日志) → webrouter(路由容器)
```

Let me present this cleanly.
## `webserver/` 目录结构


```
webserver/
├── mod.rs          — 模块入口
├── ruapp.rs        — Web 核心:服务器启动、配置读取
├── ruapp_init.rs   — DI 自动注入(自动生成)
├── start_web.rs    — 统一入口:命令行 / Web 分流
├── example.rs      — 旧示例代码(全部注释)
└── readme.MD
```

## 数据流


```
start_web()
  │
  ├─ 有命令行参数
  │     └─ rucmd::execute() → ctlc() 阻塞等待 Ctrl+C
  │
  └─ 无参数
        └─ find_bean_ruapp().run()
              ├─ rucfg 读取配置端口
              ├─ HttpServer::new(|| {
              │      App::new().configure(|cfg| {
              │          with_container_mut(|c| c.apply_routes(cfg))
              │      })
              │  })
              └─ .bind(("0.0.0.0", port)).run().await
```

## 各文件职责


| 文件 | 职责 | 关键点 |
|------|------|--------|
| [start_web.rs]file:///E:/soft/gitee.com/ruwebframe/src/ruweb/webserver/start_web.rs | **统一入口** | `args.len()>=2` 走命令行,否则启动 Web |
| [ruapp.rs]file:///E:/soft/gitee.com/ruwebframe/src/ruweb/webserver/ruapp.rs | **Web 核心** | `RuApp::run()` 创建 `HttpServer``with_container_mut` 应用路由 |
| [ruapp_init.rs]file:///E:/soft/gitee.com/ruwebframe/src/ruweb/webserver/ruapp_init.rs | **DI 注册** | `#[ctor]` 自动注册 `RuApp` 到 DI 容器 |
| [example.rs]file:///E:/soft/gitee.com/ruwebframe/src/ruweb/webserver/example.rs | **历史代码** | 全部注释,可删除 |

## 依赖链


```
ruapp_init(#[ctor]) ──→ DI 注册 RuApp
start_web ──→ find_bean_ruapp().run()
                    ├── rucfg    (配置)
                    ├── rulog    (日志)
                    └── webrouter (路由容器)
```

## 路由注册流程


```
各模块 register() ──→ register_route() ──→ RouteConfigContainer.add()
HttpServer::new ──→ App::configure ──→ with_container_mut()
                                     container.apply_routes(cfg)
```