框架介绍
Rain 是一个使用 Kotlin 编写、同时面向 Java 与 Kotlin 的 JVM 应用开发框架。它以服务端开发中的常见能力为基础,但并不绑定某一种网络协议或 Web 容器;应用可以选择所需模块,构建自己的运行时与编程模型。
设计目标
- 模块化:核心能力拆分为独立 Gradle 模块,下游应用可按需集成。
- 统一生命周期:应用扫描、Bean 注册、扩展加载、服务启动与停止由 Application 模块协调。
- 低样板代码:通过 DI、注解扫描和字节码增强减少重复注册逻辑。
- Java / Kotlin 兼容:公开 API 基于 JVM 类型系统,可从两种语言调用。
能力地图
| 能力 | 模块 | 说明 |
|---|---|---|
| 应用启动 | application | 配置初始化、类扫描、Loader 与服务生命周期 |
| 依赖注入 | di | Bean 创建、命名实例、字段与构造器注入 |
| 配置 | di | Properties、YAML、JSON 与多运行模式合并 |
| 事件 | event | 事件发布、监听器扫描和优先级 |
| 调度 | job | 注解任务、DSL 动态任务和异常事件 |
| 控制器 | controller | 协议无关的路由、Action 与处理流程抽象 |
| 类增强 | classloader、hook | ASM 转换、自定义类加载器和方法 Hook |
| 测试 | rain-test | 在 Rain 应用上下文中运行 JUnit 5 |
当前状态
Rain 当前处于开发版本。仓库构建版本是 1.0.0-DEV12,源码目标为 Java 8;使用更新 JDK 开发和运行时仍应验证依赖兼容性。部分接口仍在演进,例如 Job DSL 中的标准 Cron 表达式入口尚未实现。