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 文件的内容

修改后就能正常访问了!

相关推荐
linweidong36 分钟前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
OpenAnolis小助手42 分钟前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom
ForteScarlet1 小时前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
萧瑟余晖1 小时前
Java深入解析篇六十二之安全机制详解
java·开发语言
小刘在重生~1 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存
Orange_sparkle2 小时前
Pi Agent vs LangGraph:从人机交互、企业 RAG 到持久化工作流的完整选型指南
java·网络·人机交互
右耳朵猫AI2 小时前
Go周刊2026W36 | Go 1.27.1 发布、TinyGo 0.42、HTTP/2 原生迁入 net/http、quic-go 0.62
redis·http·golang
Wang's Blog3 小时前
Java框架快速入门: Spring Security+OAuth2之过滤器与过滤器链
java·开发语言·spring
谢尔登4 小时前
01_Java基础速通
java·开发语言
lemon_sjdk4 小时前
javafx-Image图像(2)
java·javafx