Java 设置
Fory Java 提供二进制对象序列化、Fory JSON、Row Format、生成的模型和 Fory gRPC。相关制品发布在 Maven Central。Fory core 和 Fory JSON 支持 Java 8 及更高版本,Java Record 需要 Java 17 及更高版本,Row Format 需要 Java 11 及更高版本。同一应用中的所有 Fory 制品应使用相同版本。
验证工具链
java -version
mvn -version
# or: ./gradlew --version
对象序列化
使用对象序列化处理对象图。Xlang 模式生成的数据可由其他 Fory 运行时读取;native 模式支持范围更广的 JVM 对象。
Maven:
<dependency>
<groupId>org.apache.fory</groupId>
<artifactId>fory-core</artifactId>
<version>1.5.0</version>
</dependency>
Gradle:
implementation("org.apache.fory:fory-core:1.5.0")
运行下面完整的 xlang 往返示例:
import org.apache.fory.Fory;
public final class ForyExample {
public static final class User {
public long id;
public String name;
public User() {}
public User(long id, String name) {
this.id = id;
this.name = name;
}
}
public static void main(String[] args) {
Fory fory = Fory.builder().withXlang(true).build();
fory.register(User.class, 1);
byte[] bytes = fory.serialize(new User(1, "Alice"));
User decoded = (User) fory.deserialize(bytes);
System.out.println(decoded.name);
}
}
请在单个线程内复用 Fory 实例,不要为每个值重新创建实例。Fory 不是线程安全的;如需多个线程共享并发访问,请使用 ThreadSafeFory。接下来可阅读 Java 对象序列化、xlang 模式、native 模式或配置。
Fory JSON
Fory JSON 将 Java 对象映射为标准 JSON 文本和 UTF-8 字节。如果应用只需要 JSON,请添加 fory-json,无需添加 fory-core:
implementation("org.apache.fory:fory-json:1.5.0")
在 ForyExample.java 中添加 import:
import org.apache.fory.json.ForyJson;
然后将 JSON 往返代码放入 ForyExample.main:
ForyJson json = ForyJson.builder().build();
String text = json.toJson(new User(1, "Alice"));
User jsonDecoded = json.fromJson(text, User.class);
System.out.println(jsonDecoded.name);
Maven 设置、对象映射、注解、Android、GraalVM 和安全相关内容请参阅 Fory JSON 快速入门。
其他能力
- Row Format 为可信分析数据提供随机和部分字段访问。请参阅 Java Row Format。
- Fory IDL 与编译器 从 Fory IDL、protobuf IDL 或 FlatBuffers IDL 生成 Java 模型和注册辅助代码。请参阅编译器快速入门和 Java 生成代码指南。
- Fory gRPC 通过常规 grpc-java 传输使用 Fory 编码的请求与响应对象。请参阅 Java gRPC。
运行时说明
- 在 JDK 25 及更高版本上,请按照 Java 对象序列化中的设置操作。
- Android 请参阅 Java Android 支持。
- 原生镜像请参阅 Java GraalVM 支持。