-
Notifications
You must be signed in to change notification settings - Fork 0
六、内部原理
FTK edited this page Jun 2, 2024
·
1 revision
前五个章节从使用者角度列举了工具包的常用功能及使用场景;本章着重介绍工具包的内部原理,从开发者的角度描述整体设计思路和各个功能组件的逻辑关系;帮助你梳理思路,在线上问题跟踪中能够快速定位问题。
报文(com.alatka.messages.context.MessageDefinition
)由六部分组成唯一标识:报文类型(type)/报文分组(group)/报文代码(code)/报文种类(kind)/[报文子域] (domain)/[报文子域使用标识] (usage);其中 [报文子域]/[报文子域使用标识] 非必须存在。
- 报文类型:iso(8583)/fixed(固定格式)
- 报文分组:机构标识;例如visa、master、cups、jcb、各银行机构等
- 报文代码:例如固定格式交易3004(按卡号查询卡资料信息)、4101(自选卡号选择)等
- 报文种类:header(报文头)、request(请求报文)、response(应答报文)、payload(报文体)、subPayload(报文子域)
- 报文子域:分页子域、8583各类子域等
- 报文子域使用标识:8583 ULV/UV类型子域usage值;例如F48域AA/BC/NK,F59域QL/QD/QR 等
此外,报文中还包括一些全局配置类字段(charset/holder...)和描述类字段(remark)等。
TODO
TODO
对象 | 生命周期 | 描述 |
---|---|---|
MessageDefinitionBuilder |
加载配置阶段(对象创建 -> build() /refresh() 方法调用完成) |
报文格式配置加载类 |
MessageDefinition |
MessageDefinitionBuilder#build()/refresh() -> 程序结束 |
报文定义类 |
FieldDefinition |
MessageDefinitionBuilder#build()/refresh() -> 程序结束 |
报文域定义类 |
MessageDefinitionContext |
MessageDefinitionBuilder#build()/refresh() -> 程序结束 |
报文定义Context |
DomainParsed |
首次解析报文 -> 程序结束 | 域值解析类 |
FieldBuilder |
首次解析报文 -> 程序结束 | 域值类型映射类 |
MessageBuilder |
解析一类报文开始 -> 程序结束 | 报文解析类 |
MessageHolder |
每次解析单笔报文 | 报文容器类 |