19 December 2015

阅读 Nutz 源码时,我选择从工具模块开始,再沿着它们被框架调用的路径深入。这样既能复习 Java 基础,也能看到反射、类型转换和 IO 如何组合成更高层能力。

先固定一份可定位的源码

本系列以 Nutz 1.b.53 的源码和 API 为阅读基线。不同版本的类名、默认策略和实现细节可能变化,阅读其他版本时,应同时查看那个版本的源码、文档和测试,不能只凭旧文章里的方法名推断行为。

按依赖关系安排顺序

模块 关注的问题
lang 字符串、日期、IO、路径与反射的基础封装
Mapl 对象与 Map/List 结构的转换、路径修改和合并
JSON 解析、类型转换、字段元数据和输出格式
HTTP 请求构造、连接、响应、超时和资源释放
EL 文本表达式到计算结果的处理过程
Log 统一接口与具体日志实现的适配

这些模块不是孤立的。例如对象转换依赖反射和类型信息,JSON 输出又依赖字段描述与格式配置。先找到入口与公共依赖,再顺着一条输入走到输出,比按文件名逐个阅读更容易形成整体认识。

每次只追踪一个问题

先运行一个最小用例,记录参数、结果与异常,再跟进关键调用。区分入口重载、核心处理、类型分派和外部资源,避免在大量辅助分支里失去目标。

正常路径看懂后,再准备空值、边界类型、循环引用或失败输入。方法返回了一个对象,不代表转换保留了所有类型;配置提供一个选项,也不代表所有分支都会读取它。

系列目录

参考:Nutz 项目、1.b.53 源码包。





blog comments powered by Disqus
Fork me on GitHub