Spring中读取本地json文件,并交给Spring容器管理

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Spring中读取本地json文件,并交给Spring容器管理
我们经常在项目开发中遇到项目数据初始化的问题,例如一些超管,管理员账号;或者地图包,电话号码包,之类的东西。放到到一个json文件里面(大的数据字典包可以放到搜索引擎里面,改情况本文不做讨论),然后项目启动时候就可以读取,便于我们使用
  • initData.json 文件
{
  "appcInitData":{
    "coinTaskInitLogo":{
      "newMemberGuide" : "https,://123.cn/123/saas_123.png"
    }
  }
}
  • InitDataProperties.java (Json 文件映射类)
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class InitDataProperties {
    private AppcInitData AppcInitData;

    @Data
    public class AppcInitData {
        private CoinTaskInitLogo coinTaskInitLogo;
        @Data
        public class CoinTaskInitLogo {
            private String newMemberGuide;
        }
    }
}
  • InitProjectData.java(数据读取接口)
public interface InitProjectData {
    InitDataProperties PrepareAppcInitData();
}
  • InitProjectDataImpl.java (实现类)
json文件放在了resource/doc 文件目录下
@Component
public class InitProjectDataImpl implements InitProjectData{
    @Override
    public InitDataProperties PrepareAppcInitData() {
        String fileSeparator = File.separator;
        try {
            File file = new File(this.getClass().getResource(fileSeparator + "doc" + fileSeparator + "initData.json").getFile());
            ObjectMapper objectMapper = new ObjectMapper();
            InitDataProperties initDataProperties = objectMapper.readValue(file, InitDataProperties.class);
            System.out.println(initDataProperties.toString());
            return initDataProperties;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}
  • 在PostConstruct 项目初始化时候,调用并初始化
    @Autowired
    InitProjectData InitProjectData;
    @PostConstruct
    public void init(){
       InitProjectData.PrepareAppcInitData();
    }
    

测试

在这里插入图片描述

参考资料 & 致谢

[1] Spring.io

目录
相关文章
|
23天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
60 2
|
4月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
2月前
|
存储 前端开发 Java
Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能
本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。
355 11
|
2月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
335 0
|
2月前
|
Java Maven Spring
用Spring导致的无法运行Java文件的问题的解决方案
本文提供了解决在IntelliJ IDEA社区版中使用Spring Initializr插件创建Spring项目后,Java文件无法运行的问题的方法,主要是通过加载Maven项目来解决。
82 0
|
4月前
|
关系型数据库 MySQL 应用服务中间件
[Docker]容器内文件修改
【8月更文挑战第21天】[Docker]容器内文件修改
183 13
|
3月前
|
Docker 容器
6-16|docker怎么把容器内的文件传出来
6-16|docker怎么把容器内的文件传出来
|
4月前
|
XML Java 数据格式
Spring5入门到实战------8、IOC容器-Bean管理注解方式
这篇文章详细介绍了Spring5框架中使用注解进行Bean管理的方法,包括创建Bean的注解、自动装配和属性注入的注解,以及如何用配置类替代XML配置文件实现完全注解开发。
Spring5入门到实战------8、IOC容器-Bean管理注解方式
|
4月前
|
存储 Java Spring
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
|
4月前
|
Java Linux C++
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑

相关产品

  • 容器服务Kubernetes版