49.8. 5.消息
Message 注解用于识别包含键值对字段的模型类。此类格式主要在 financial Exchange Protocol Messages (FIX)中使用。但是,此注解可用于通过密钥标识数据的任何其他格式。密钥对值由分隔符相互分隔,可以是诸如 tab delimitor (unicode representation : \u0009): \u0009)的特殊字符,或者标题开头(unicode 表示:\u0001)
*"FIX information"*
有关 FIX 的更多信息,请参阅此网站: http://www.fixprotocol.org/。要使用 FIX 消息,模型必须包含链接到根消息类的标头和 Trailer 类,可以是 Order 类。这不是强制要求,当您将 camel-bindy 与 camel-fix 结合使用时,这是基于快速Fix 项目的修复网关时,将非常有用。http://www.quickfixj.org/
注解名称 | 记录类型 | 级别 |
---|---|---|
消息 | 键值对 | 类 |
参数名称 | type | info |
---|---|---|
pairSeparator | 字符串 | mandatory - 可以是 '=' 或 ';' 或 'anything' |
keyValuePairSeparair | 字符串 | 必需 - 可以是 '\u0001', '\u0009', '#' 或 'anything' |
crlf | 字符串 | 可选 - 可能的值 = WINDOWS,UNIX,MAC, 或 custom; 默认值 = WINDOWS - 允许定义要使用的 carriage 返回字符。如果您指定了之前列出的三个值,则您输入的值(自定义)将用作 CRLF 字符。 |
type | 字符串 | 可选 - 定义消息类型(如 FIX、EMX、…) |
version | 字符串 | 可选 - 消息版本(如 4.1) |
isOrdered | 布尔值 | 可选 - 默认值 = 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
@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.txt)和 Order, Trailer, Header classes (src\test\java\org\apache\camel\dataformat\bindy\model\fix\simple\Order.java)