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应用启动自动运行代码的三种方案

相关推荐
slowlybutsurely几秒前
Cursor快速入门
java·ai编程·cursor
天天摸鱼的java工程师7 分钟前
假设你在开发订单系统时遇到高并发下库存扣减出错,如何解决?由浅入深分析
java·后端·面试
都叫我大帅哥8 分钟前
Redis的ZSet:从“青铜”到“王者”的排序神器
java·redis
肖笙XiaoSheng19 分钟前
使用Gemini2.5 pro 优化我的定时任务(二)
java·后端·代码规范
小小霸王龙!21 分钟前
互联网大厂Java面试实录:Spring Boot与微服务在电商场景中的应用
java·spring boot·redis·微服务·电商
深栈解码23 分钟前
JUC并发编程 CAS运行机制详解
java·后端
草履虫建模24 分钟前
Postman - API 调试与开发工具 - 标准使用流程
java·测试工具·spring·json·测试用例·postman·集成学习
深栈解码24 分钟前
JUC并发编程 ThreadLocal解析
java·后端
衍生星球31 分钟前
Maven 3.9.6的下载和配置
java·maven·springboot
缘来是庄39 分钟前
设计模式之代理模式
java·设计模式·代理模式