gpt4 book ai didi

Java Spring Boot - 如何使用户能够从命令行切换数据文件?

转载 作者:行者123 更新时间:2023-12-02 10:00:26 27 4
gpt4 key购买 nike

我正在使用一个包含数千行的 JSON 文件(用作“数据库”)。它正在被反序列化,然后应用程序的逻辑基于反序列化的 pojo。

我想让用户在命令行中运行应用程序之前切换这些 JSON 文件:(例如)

 java -jar target/app.jar -source=resources/data.json

该应用程序是使用 Spring Boot 构建的,我一直在阅读这样的文件:

file = ResourceUtils.getFile("/Users/App/src/main/resources/data.json");

我找到了一些有关加载属性的说明,但我想做的是加载整个文件,但我似乎找不到可靠的说明。

编辑:

应用程序属性:

source = filepath

我的 DAO 片段:

  @Repository
public class SomethingDao {

private ObjectMapper mapper = new ObjectMapper();
private File file;

@Value("${source}")
private String source;

{
try {
file = ResourceUtils.getFile(source);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
something = mapper.readValue(file, Something.class);
} catch (IOException e) {
e.printStackTrace();
}
}

我尝试使用的命令:

java -jar target/app.jar -source="src/main/resources/data.json"
java -jar target/app.jar -source="/data.json"
java -jar target/app.jar --source="src/main/resources/data.json"
java -jar target/app.jar --source="/data.json"
and so on...

最佳答案

通过使用 application.propertiesapplication.yml 来实现此目的,在 application.properties 中指定属性并通过命令行 doc 覆盖它

application.properties

source = filepath

服务商务舱位

@Component
public class MyBean {

@Value("${source}")
private String name;

public void someMethod() {

file = ResourceUtils.getFile(source);
}

}

命令

java -jar target/app.jar -source="src/main/resources/data.json"

关于Java Spring Boot - 如何使用户能够从命令行切换数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55671358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com