springbootweb案例,出现访问 http://localhost:8080/list 一直处于浏览器运转阶段

让我检查一下修改后的代码是否正确应用,以及是否还有其他问题。

**已查看文件** *UserDaoImpl.java*

我看到代码还没有修改!第 27 行仍然是 `System.in`,这就是问题所在。

**请按照以下步骤操作:**

1. 修改 UserDaoImpl.java

将第 27 行的 `System.in` 改为 `in`:

```java

// ... existing code ...

public class UserDaoImpl implements UserDao {

@Override

public List<String> findAll() {

InputStream in = this.getClass().getClassLoader().getResourceAsStream("user.txt");

// 之前代码自动生成了System.in,会等待控制台输入,如果没有输入,就会一直等待

ArrayList<String> lines = IoUtil.readLines(in, StandardCharsets.UTF_8, new ArrayList<>());

return lines;

}

}

```

**关键修改:第 27 行从 `System.in` 改为 `in`**

2. 同时修改 UserController.java

移除手动创建对象的代码,让 Spring 自动注入:

```java

package com.itheima.controller;

import com.itheima.pojo.User;

import com.itheima.service.UserService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController

public class UserController {

@Autowired

private UserService userService;

@RequestMapping("/list")

public List<User> list() throws Exception {

List<User> userList = userService.findAll();

return userList;

}

}

```

3. 为 UserServiceImpl 添加 @Service 注解

```java

package com.itheima.service.impl;

import com.itheima.dao.UserDao;

import com.itheima.dao.impl.UserDaoImpl;

import com.itheima.pojo.User;

import com.itheima.service.UserService;

import org.springframework.stereotype.Service;

import java.time.LocalDateTime;

import java.time.format.DateTimeFormatter;

import java.util.List;

import java.util.stream.Collectors;

@Service

public class UserServiceImpl implements UserService {

private UserDao userDao = new UserDaoImpl();

@Override

public List<User> findAll() {

List<String> lines = userDao.findAll();

List<User> userList = lines.stream().map(line -> {

String\[\] parts = line.split(",");

Integer id = Integer.parseInt(parts0);

String username = parts1;

String password = parts2;

String name = parts3;

Integer age = Integer.parseInt(parts4);

LocalDateTime updateTime = LocalDateTime.parse(parts5, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

return new User(id, username, password, name, age, updateTime);

}).collect(Collectors.toList());

return userList;

}

}

```

4. 重启应用

修改完成后:

  1. **停止**当前运行的应用

  2. **重新编译**项目(IDEA 中点击 Build → Rebuild Project)

  3. **重新启动** SpringBootWeb01Application

  4. 访问 `http://localhost:8080/list\`


**问题原因总结:**

  • `System.in` 是标准输入流,会一直等待控制台输入,导致请求阻塞

  • 应该使用 `in`(文件输入流)来读取 user.txt 文件的内容

修改后就能正常访问了!

相关推荐
EatFan6 小时前
Spring Boot 4 落地观察:从 yudao-cloud、matecloud、JPower 看国产脚手架的升级路线与迁移清单
java·spring boot·后端·spring cloud·微服务·后端开发·jdk 21
Maiko Star7 小时前
* LangChain 提示词模板详解:ChatPromptTemplate 的使用与高级特性
java·人工智能·langchain
现任明教教主~9 小时前
Thinkphp站群蜘蛛池SaaS系统YanyvSEO含多用户/积分/六大引擎计费/易支付对接
java·开发语言·spring
一条破秋裤10 小时前
Linux 线程创建:pthread_create 与基本回收
java·linux·运维
布吉岛的石头10 小时前
Java 程序员第 49 阶段5:BERT 预训练目标 MLM+NSP 的工程含义
java·人工智能·深度学习·bert·transformer
码匠许师傅10 小时前
【C++三方组件】cpp-httplib:一个头文件起 HTTP 服务
开发语言·c++·http
不会就选b10 小时前
Linux之应用层协议HTTP(二)
网络·网络协议·http
hasty10 小时前
只监听本机为何仍需鉴权?Cline Hub 的 WebSocket 信任边界解析
网络·websocket·网络协议
摇滚侠11 小时前
《On Java 中文版 基础卷》阅读笔记 对象无处不在 03
java·笔记·python
二十雨辰11 小时前
[学成在线]-01项目背景
java