spring boot读取json文件并实现接口查询
0.源码下载
https://download.csdn.net/download/IndexMan/84238085
1.说明
最近需要在spring boot项目启动时读取json文件并保存到List<模型>中,然后需要在controller中去访问使用。为了还原这个使用场景我做了个例子。
2.准备json文件
将user.json文件复制到spring boot项目的resource目录下。文件内容如下:
[
{
"id":1,
"name": "小李",
"gender": "男",
"age": 18
},
{
"id":2,
"name": "小王",
"gender": "女",
"age": 18
}
]
3.编写User模型
@Data
public class User {
private Integer id;
private String name;
private String gender;
private Integer age;
}
4.编写UserDao
@Component
public class UserDao {
private static List<User> userList = new ArrayList<>();
@Value("classpath:user.json")
private Resource userResource;
@PostConstruct
public List<User> getUser(){
try {
String json = IOUtils.toString(userResource.getInputStream(), Charset.forName("UTF-8"));
userList = JSONObject.parseArray(json, User.class);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
return userList;
}
}
5.编写UserController
@RestController
public class UserController {
@Autowired
UserDao userDao;
/**
* 根据ID查询用户
* @param id
* @return
*/
@GetMapping("/user/{id}")
public Result<User> getUserById(@PathVariable Integer id){
List<User> list = userDao.getUser();
User user = null;
for (User u:
list) {
if (u.getId().equals(id)){
user = u;
break;
}
}
return ResultUtil.ok(user);
}
/**
* 查询用户列表
* @return
*/
@GetMapping("/users")
public Result<List<User>> getUserById(){
return ResultUtil.ok(userDao.getUser());
}
}
6.测试
浏览器访问:
6.1 查询用户列表
http://localhost:8080/users

6.2 根据ID查询用户
http://localhost:8080/user/1

spring boot读取json文件并实现接口查询的更多相关文章
- spring注解读取json文件
开发时候在接口没有提供的时候,可以用json文件提前模拟接口数据 1.service层 package com.syp.spring.service; import java.io.File; imp ...
- spring boot读取本地文件
File file = ResourceUtils.getFile("classpath:face/1112.txt"); InputStream inputStream = ne ...
- Spring boot 读取resource目录下的文件
背景:最近做项目重构将以前的ssh + angular js架构,重构为spring boot + vue.项目是一个数据管理平台,后台涉及到多表关联查询,数据导入导出等. 问题:读取resource ...
- 接口自动化(三)--读取json文件中的数据
上篇讲到实际的请求数据放置在json文件内,这一部分记述一下python读取json文件的实现. 代码如下(代码做了简化,根据需要调优:可做一些容错处理): 1 import json 2 3 cla ...
- springboot(十七):使用Spring Boot上传文件
上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例. 1.pom包配置 我们使用Spring Boot最新版本1.5.9. ...
- (转)Spring Boot(十七):使用 Spring Boot 上传文件
http://www.ityouknow.com/springboot/2018/01/12/spring-boot-upload-file.html 上传文件是互联网中常常应用的场景之一,最典型的情 ...
- Spring Boot(十七):使用Spring Boot上传文件
Spring Boot(十七):使用Spring Boot上传文件 环境:Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0 一.pom包配置 <parent> ...
- Spring Boot REST(一)核心接口
Spring Boot REST(一)核心接口 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) SpringBoot RE ...
- 使用Spring Boot上传文件
原文:http://www.cnblogs.com/ityouknow/p/8298344.html 上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spri ...
- spring boot 规范json返回值
spring boot 规范json返回值 spring boot 接口返回配置 @ResponseBody ,则返回自定义的对象,解析成json. 但是,部分字段能友好的展示出来.如 Date,Lo ...
随机推荐
- 【OpenVINO】基于 OpenVINO Python API 部署 RT-DETR 模型
目录 1. RT-DETR 2. OpenVINO 3. 环境配置 3.1 模型下载环境 3.2 模型部署环境 4. 模型下载与转换 4.1 PaddlePaddle模型下载 4.2 IR模型转换 5 ...
- [转帖]Export Prometheus metrics from SQL queries
https://github.com/albertodonato/query-exporter query-exporter is a Prometheus exporter which allows ...
- [转帖]ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57
https://www.cnblogs.com/senior-engineer/p/8668723.html 前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列产品,以此来扩大 ...
- [转帖]arm linux下编译xtrabackup-2.4.5
环境:aarch64/centos7.6 glibc-2.17 编译器:gcc version 5.5.0 (GCC) 官方参考文档:https://www.percona.com/doc/perc ...
- [转帖]Docker-Compose 自动创建的网桥与局域网冲突解决方案
https://zhuanlan.zhihu.com/p/379305319 Docker-Compose 自动创建的网桥与局域网冲突解决方案 当我使用docker-compose的方式部署内网的ha ...
- [转帖]Jmeter中如何读取MYSQL数据作为请求参数
在项目测试过程中,我经常需要将数据库中的数据作为参数传递到请求中.Jmeter中MYSQL数据库连接操作过程如下: 1.下载/n导入mysql的jdbc驱动包 下载mysql驱动包地址: http:/ ...
- [转帖]jmeter编写测试脚本大全
目录 一.背景 二.按照功能划分 2.1 加密处理.验签处理 2.2 jmeter 使用beanshell 编写脚本 2.3 jmeter脚本报错大全 2.4 jmeter打印log 2.5 jmet ...
- 银河麒麟不同架构获取rpm包的方法
银河麒麟不同架构获取rpm包的方法 背景 随着信创和网络安全越来越重要 现阶段国产化的软硬件部署越来越多. 很多时候现场有很多国产化的设备.不同架构.不同版本. 还不能上网, 无法获取对应的安装介质. ...
- [转帖]多CPU && 多核CPU | 多进程 && 多线程 | 并行 && 并发
https://cloud.tencent.com/developer/article/1886157?areaSource=&traceId= 文章目录 区分 多CPU &&am ...
- Bash 脚本发送消息到企业微信的办法
1. Study From https://www.cnblogs.com/elvi/p/11444388.html 2. 申请或者使用已经有的企业微信. 首先是获取一下企业id 方法如图: 3. 创 ...