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

修改后就能正常访问了!

相关推荐
紧跟先前的步伐1 小时前
Go AI Agent 实战 03|Token、上下文窗口与模型调用成本
java·人工智能·golang
const_qiu2 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
小天源2 小时前
让访问数据可解释:IP 地球大屏、地区库更新与运行维护设计
网络·网络协议·tcp/ip
Wang's Blog2 小时前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友
Promising_GEO2 小时前
GEE实战02期:从卫星波段开始:利用 Sentinel-2 自己计算 NDVI
java·sentinel·遥感·空间分析
大文说跨境2 小时前
亚马逊多账号管理浏览器怎么选?云登/紫鸟/AdsPower 对比
java·前端·自动化
CoderYanger2 小时前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
顽疲3 小时前
java springboot vue 养老系统源码详解:请假 care_leave 销假与床位停费日扣实践
java·vue.js·spring boot
万年咸鱼3 小时前
WebSocket、Socket 与 HTTP 的区别详解
websocket·网络协议·http
XIAEE3 小时前
一个即时通讯项目是怎么长出来的:(Spring Boot 3 + Vue 3 微前端 + 悟空 IM + LiveKit)
java·spring