#|spring boot读取json文件并实现接口查询
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 userList = new ArrayList<>();
@Value("classpath:user.json")
private Resource userResource;
@PostConstruct
public List 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 getUserById(@PathVariable Integer id){
List 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> getUserById(){
return ResultUtil.ok(userDao.getUser());
}
}
6.测试 浏览器访问:
6.1 查询用户列表 【#|spring boot读取json文件并实现接口查询】http://localhost:8080/users
文章图片
6.2 根据ID查询用户 http://localhost:8080/user/1
文章图片
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 2018-07-09|2018-07-09 Spring 的DBCP,c3p0
- spring|spring boot项目启动websocket
- ExcelPackage读取写入
- Spring|Spring Boot 整合 Activiti6.0.0
- Spring集成|Spring集成 Mina
- springboot使用redis缓存
- Spring|Spring 框架之 AOP 原理剖析已经出炉!!!预定的童鞋可以识别下发二维码去看了