首页 > 解决方案 > 在整个 Spring Boot Runtime 中存储 JSON 数据

问题描述

我有一个 Spring Boot 应用程序,并将文件中的一些配置上传到我的 Spring Boot 中

{
  "importer": {
    "name": "Project XYZ",
    "description": "This project belongs to XYZ. It contains __ variants which are related.",
    "root": "./src/test/resources/Project/Project1"
  },
  //and some other configurations
 }

我也有我的模型课作为

@Data
public class AssetRootConfig {

    @Id
    private String key;
    private AssetImport importer;
    //some configurations
}

现在我想存储/保留这些值并在我的 Spring Boot 运行时使用它,方法是只实例化一次 /@Autowiring 模型类,而不是在所有类中使用 @Autowiring AssetRootConfig 来使用它。有什么办法可以做到这一点?

标签: javaspringspring-bootmodelautowired

解决方案


如果你对 JSON 限制很灵活,你可以将你的结构放在你的属性文件中,并使用@ConfigurationProperties反序列化到你的模型中。但是你AssetRootConfig不会被持久化在任何数据库中,而是代表你配置的某个部分。

如果这不是一个选项,您可以使用CommandLineRunner在启动后调用您的代码。然后,您可以从文件中读取 JSON 并使用某种存储库将其持久化(如果尚未持久化;))。保存后,您可以使用存储库来访问此特定实体。


推荐阅读