跳到主要内容
版本:dev

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

运行时说明