49.8. 5.消息
Message 注解用于标识将包含键值对字段的模型类。这种格式主要在 Exchange Protocol 协议消息(FIX)中使用。不过,此注解可用于通过键标识数据的任何其他格式。密钥对值彼此分隔为分隔符,可以是诸如 tab delimitor (unicode representation : \u0009))或标题的开头(unicode 表示 : \u0001)的特殊字符。
*"FIX information"*
有关 FIX 的更多信息,请参阅此网站 : http://www.fixprotocol.org/。要使用 FIX 消息,模型必须包含链接到根消息类的 Header 和 Trailer 类,该类可以是 Order 类。这并不是强制性的,但当您将 camel-bindy 与 camel-fix 结合使用时,它是一个基于快速Fix 项目修复网关 http://www.quickfixj.org/ 时很有用。
注解名称 | 记录类型 | 级别 |
---|---|---|
消息 | 键值对 | 类 |
参数名称 | type | info |
---|---|---|
pairSeparator | string | Mandatory - 可以是 '=' 或 ';' 或 'anything' |
keyValuePairSeparair | string | mandatory - 可以是 '\u0001', '\u0009', '#' 或 'anything' |
crlf | string | 可选 - 可能的值 = WINDOWS,UNIX,MAC, 或 custom; 默认值 = WINDOWS - 允许定义要使用的回车返回字符。如果您指定了前面列出的三个值,则您输入的值(custom)将用作 CRLF 字符。 |
type | string | 可选 - 定义消息类型(如 FIX、EMX、…) |
version | string | 可选 - 消息版本(如 4.1) |
isOrdered | 布尔值 | 可选 - default value = false - 允许在生成 FIX 消息时更改字段的顺序。此注解与模型的消息类关联,必须被声明一次。 |
case 1 : separator = 'u0001'
用于隔离 FIX 消息中的键值对字段的分隔符为 ASCII '01' 字符或 unicode 格式 '\u0001'。这个字符必须进行第二次转义,以避免 java 运行时错误。下面是一个示例:
8=FIX.4.1 9=20 34=1 35=0 49=INVMGR 56=BRKR 1=BE.CHM.001 11=CHM0001-01 22=4 ...
以及如何使用注解
FIX - 信息
@Message(keyValuePairSeparator = "=", pairSeparator = "\u0001", type="FIX", version="4.1") public class Order { }
*Look at test cases*
ASCII 字符,如 tab, … 不能显示在 WIKI 页面中。因此,有一个名为 camel-bindy 的测试案例,以了解 FIX 消息如何像(src\test\data\fix\fix\fix.txt)和 Order, Trailer, Header classes (src\test\java\org\apache\camel\dataformat\bindy\model\simple\Order.java)