阅读 Nutz 源码时,我选择从工具模块开始,再沿着它们被框架调用的路径深入。这样既能复习 Java 基础,也能看到反射、类型转换和 IO 如何组合成更高层能力。
先固定一份可定位的源码
本系列以 Nutz 1.b.53 的源码和 API 为阅读基线。不同版本的类名、默认策略和实现细节可能变化,阅读其他版本时,应同时查看那个版本的源码、文档和测试,不能只凭旧文章里的方法名推断行为。
按依赖关系安排顺序
| 模块 | 关注的问题 |
|---|---|
| lang | 字符串、日期、IO、路径与反射的基础封装 |
| Mapl | 对象与 Map/List 结构的转换、路径修改和合并 |
| JSON | 解析、类型转换、字段元数据和输出格式 |
| HTTP | 请求构造、连接、响应、超时和资源释放 |
| EL | 文本表达式到计算结果的处理过程 |
| Log | 统一接口与具体日志实现的适配 |
这些模块不是孤立的。例如对象转换依赖反射和类型信息,JSON 输出又依赖字段描述与格式配置。先找到入口与公共依赖,再顺着一条输入走到输出,比按文件名逐个阅读更容易形成整体认识。
每次只追踪一个问题
先运行一个最小用例,记录参数、结果与异常,再跟进关键调用。区分入口重载、核心处理、类型分派和外部资源,避免在大量辅助分支里失去目标。
正常路径看懂后,再准备空值、边界类型、循环引用或失败输入。方法返回了一个对象,不代表转换保留了所有类型;配置提供一个选项,也不代表所有分支都会读取它。
系列目录
- nutz源码阅读之Json系列一
- nutz源码阅读之Json系列二
- nutz源码阅读之Mapl结构之Object2Mapl
- nutz源码阅读之Mapl结构之Mapl2Object
- nutz源码阅读之Mapl结构之MaplRebuild和MaplMerge工具类
- nutz源码阅读之表达式引擎之初识
- nutz源码阅读之HttpClient初识
- nutz源码阅读之HttpClient进阶
- nutz源码阅读之lan包初识
- nutz源码阅读之lan包之基本类型工具(Strings)
- nutz源码阅读之lang包之基本类型工具
- nutz源码阅读之lang包之IO操作
- nutz源码阅读之lang包之反射
- nutz源码阅读之日志的实现
参考:Nutz 项目、1.b.53 源码包。