spring boot项目运行jar包读取包内resources目录下的文件
·
摘要
Spring Boot 项目打包成 jar 包后,resources 目录下的文件将会被打包到 jar 包中。如果需要在 Spring Boot 项目运行 jar 包后读取 resources 目录下的文件,可以使用 this.getClass().getResourceAsStream() 方法。
结果输出:
jar包程序读取包内resources下的文件:
{"name":"小明","age":45}
{"level":2,"name":"小丽","age":33}
码代码
文件所在目录/src/main/resources/static/my-json-data.json
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);
}
}
}
相关文章
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)