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


**已查看文件** *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(parts[0]);
            String username = parts[1];
            String password = parts[2];
            String name = parts[3];
            Integer age = Integer.parseInt(parts[4]);
            LocalDateTime updateTime = LocalDateTime.parse(parts[5], 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 文件的内容

修改后就能正常访问了!

更多推荐