介绍
在 之前的版本中,无论是 内置注解 还是 自定义注解,表达式 都是通过 SpEL 来实现的。
从 开始,xtream-codec 新增了 @Expression 注解。支持三种表达式:
2026/1/17大约 4 分钟
在 之前的版本中,无论是 内置注解 还是 自定义注解,表达式 都是通过 SpEL 来实现的。
从 开始,xtream-codec 新增了 @Expression 注解。支持三种表达式:
TODO 补充文档
内置注解都是从 @XtreamField 注解扩展而来的。目前有两种风格的注解:
Rust 数据类型命名风格JT/T 808 协议数据类型命名风格提示
Rust 风格内置注解
JT/T 808 风格的注解只支持无符号,因为 JT/T 808 官方文档里都是无符号数@XtreamField 注解
@XtreamField 来进行扩展自定义注解都是通过元注解 @XtreamField 的来实现的。
本示例将演示通过 @XtreamField 来实现一个自定义的日期注解。
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@XtreamField(fieldCodec = MyDateTypeFieldCodec.class, dataType = BeanPropertyMetadata.FiledDataType.basic)
public @interface MyDateType {
@AliasFor(annotation = XtreamField.class, attribute = "order")
int order() default -1;
@AliasFor(annotation = XtreamField.class, attribute = "condition")
String condition() default "";
}
@XtreamField 是最基础的注解。
内置的 别名(Alias) 注解 @Preset.RustStyle.xxx 和 @Preset.JtStyle.xxx 都是基于 @XtreamField 这个基础注解 衍生 的。
提示
注解别名都是依赖于 Spring 的 @org.springframework.core.annotation.AliasFor 注解实现的。