在我的Java微服务中,我想使用JSON模式验证JSON对象。我有一堆JSON模式文件。一切都很好。
我可以使用Maven存储库分发我的JSON模式文件,然后在我的服务中添加Maven依赖项并在需要验证JSON对象的情况下从本地Maven存储库中的本地模式文件中进行选择吗?
我知道我可以保存架构文件并访问它们,但是我试图查看是否有某种方式可以使用maven?
谢谢,我希望我的问题很清楚。
答案 0 :(得分:0)
一种可能的解决方案是将架构简单地包装到一个或多个jar文件中,然后像读取任何资源文件一样读取它们。
以下是一些示例代码来演示:
这是模式项目的项目结构的屏幕截图:
该项目的POM非常简单,因为它只是一个简单的jar:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.group</groupId>
<artifactId>schemas</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
消耗schemas项目的项目只需添加对schemas项目的依赖项:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.group</groupId>
<artifactId>schema-consumer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>my.group</groupId>
<artifactId>schemas</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
读取模式的代码很简单-就像我之前说的那样,就像读取任何其他资源文件一样。下面是一些示例代码,它们读取模式文件并将输出转储到控制台:
package my.pkg;
import java.io.InputStream;
import java.util.Scanner;
public class ReadSchema {
public static void main(String[] args) {
InputStream inStream = ReadSchema.class.getClassLoader().getResourceAsStream("schema.json");
Scanner scan = new Scanner(inStream);
scan.useDelimiter("\\A");
String json = scan.next();
System.out.println(json);
scan.close();
}
}
希望这会有所帮助!