SpringBoot中读取mock数据-高效调试接口

写在前面:故不积跬步,无以致千里,不积小流,无以成江海。

个人感悟:

最近需求上偏向数仓需求较多,大结构型的json或者字符串 比较多,为了节省时间,以往从数据库 或者三方SDK获取数据的地方,直接读取本地mock数据进行调试。真的很高效,无非启动项目,单元测试 或者 主函数就可以自测。 记录一下这次的经验分享给大家,留给自己备用

SpringBoot中读取resource资源文件MOCK数据 调试接口

在 Spring Boot 项目中,通常会将静态资源或配置文件放在 src/main/resources 目录下。以下是如何读取存放在 resources 目录中的文本文件的步骤和代码示例:

文件路径

将文件放在 src/main/resources 目录下,例如文件名为 mock_data.txt

代码示例

可以通过 Spring 的 ClassPathResource 或标准的 ClassLoader 来读取 resources 中的文件内容。

方法 1:使用 ClassPathResource
java 复制代码
import org.springframework.core.io.ClassPathResource;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;

public class FileUtil {
    public static String readFileFromResources(String fileName) {
        StringBuilder content = new StringBuilder();
        try {
            // 获取文件资源
            ClassPathResource resource = new ClassPathResource(fileName);
            try (BufferedReader reader = new BufferedReader(
                    new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8))) {
                String line;
                while ((line = reader.readLine()) != null) {
                    content.append(line).append("\n");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return content.toString();
    }
}
方法 2:使用 ClassLoader
java 复制代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;

public class FileUtil {
    public static String readFileFromResources(String fileName) {
        StringBuilder content = new StringBuilder();
        try {
            // 获取当前线程的类加载器
            ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            try (BufferedReader reader = new BufferedReader(
                    new InputStreamReader(classLoader.getResourceAsStream(fileName), StandardCharsets.UTF_8))) {
                String line;
                while ((line = reader.readLine()) != null) {
                    content.append(line).append("\n");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return content.toString();
    }
}

示例用法

java 复制代码
public class Main {
    public static void main(String[] args) {
        String content = FileUtil.readFileFromResources("mock_data.txt");
        System.out.println(content);
    }
}

注意事项

  1. 文件路径
    • 如果文件位于 resources 的子目录下,例如 data/mock_data.txt,那么 fileName 应设置为 "data/mock_data.txt"
  2. 文件存在性
    • 确保 mock_data.txt 已经正确放置在 src/main/resources 或其子目录下。
    • 如果文件不存在或路径错误,会抛出 FileNotFoundException
  3. 编码问题
    • 读取时应指定文件的字符集(如 UTF-8),以避免乱码问题。

通过这些方法,你可以轻松读取并引用 Spring Boot 项目中 resources 目录下的文件内容。

相关推荐
像少年啦飞驰点、7 分钟前
零基础入门 Spring Boot:从“Hello World”到可部署微服务的完整学习指南
java·spring boot·微服务·编程入门·后端开发
2401_8414956412 分钟前
【Web开发】基于Flask搭建简单的应用网站
后端·python·flask·视图函数·应用实例·路由装饰器·调试模式
Dragon Wu16 分钟前
SpringBoot3 当前最新版knife4j openapi3 集成方案
spring boot·后端·springboot
女王大人万岁19 分钟前
Go语言JSON标准库(encoding/json):功能解析与实战指南
服务器·开发语言·后端·golang·json
小高Baby@25 分钟前
Go语言中面向对象的三大特性之继承的理解
开发语言·后端·golang
小高Baby@25 分钟前
Go语言中面向对象的三大特性之封装的理解
开发语言·后端·golang
yangminlei27 分钟前
从零构建一个基于 DeepSeek 的 AI 对话系统:Spring Boot + 前端实战指南
spring boot·ai编程
Ivanqhz37 分钟前
向量化计算
开发语言·c++·后端·算法·支持向量机·rust
csdn2015_44 分钟前
Spring Boot `HttpServletRequest`
spring boot·http·servlet
小沈同学呀1 小时前
SpringBoot 使用Docx4j实现 DOCX 转 PDF
spring boot·后端·pdf·docx4j