spring boot项目运行jar包读取包内resources目录下的文件

spring boot项目运行jar包读取包内resources目录下的文件


摘要

Spring Boot 项目打包成 jar 包后,resources 目录下的文件将会被打包到 jar 包中。如果需要在 Spring Boot 项目运行 jar 包后读取 resources 目录下的文件,可以使用 this.getClass().getResourceAsStream() 方法。

结果输出:

bash 复制代码
jar包程序读取包内resources下的文件:
{"name":"小明","age":45}
{"level":2,"name":"小丽","age":33}

码代码

文件所在目录/src/main/resources/static/my-json-data.json

java 复制代码
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.io.IOException;
import java.io.InputStream;

@Component
public class MockRunApp {
    static String jsonData1;
    static String jsonData2;

    /**
     * Bean的构建后置过程中读取resources目录下的文件
     */
    @PostConstruct
    public void constructFunc(){
        try {
            InputStream resourceAsStream = this.getClass().getResourceAsStream("/static/my-json-data.json");
            assert resourceAsStream != null;
            String content = IOUtils.toString(resourceAsStream, "UTF-8");
            ObjectMapper objectMapper = new ObjectMapper();
            Object object = objectMapper.readValue(content, Object.class);
            JSONArray objects = JSON.parseArray(JSONObject.toJSONString(object));
            jsonData1 = objects.getString(0);
            jsonData2 = objects.getString(1);

            System.out.println("jar包程序读取包内resources下的文件:");
            System.out.println(jsonData1);
            System.out.println(jsonData2);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

}

相关文章

Web应用启动自动运行代码的三种方案

相关推荐
奋斗的小方3 分钟前
01 一文读懂UML类图:核心概念与关系详解
java·uml
长安城没有风8 分钟前
Java 高并发核心编程 ----- 线程池原理与实践(上)
java·juc
Remember_9938 分钟前
Spring 核心原理深度解析:Bean 作用域、生命周期与 Spring Boot 自动配置
java·前端·spring boot·后端·spring·面试
风流倜傥唐伯虎13 分钟前
java多线程打印
java·多线程
80530单词突击赢16 分钟前
云原生时代:.NET与Java的K8s进化论
java
hhy_smile18 分钟前
Special method in class
java·开发语言
我命由我1234522 分钟前
Android 开发 Room 数据库升级问题:A migration from 6 to 7 was required but not found.
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
黄筱筱筱筱筱筱筱24 分钟前
7.适合新手小白学习Python的异常处理(Exception)
java·前端·数据库·python
Stecurry_3026 分钟前
Springboot整合SpringMVC --从0到1
java·spring boot·后端
Serene_Dream26 分钟前
NIO 的底层机理
java·jvm·nio·mmap