为什么 Spring @Autowired 字段为 null 以及如何修复?
大家好。我是 Spring 新手,遇到了一个奇怪的问题。我有一个 `UserService`,想通过 `@Autowired` 注解将其注入到控制器中。但尝试调用服务方法时,出现了 `NullPointerException`——`userService` 字段为 `null`。
这是我的代码:
```java
public class UserController {
@Autowired
private UserService userService;
public void handleRequest() {
userService.getUser(1); // 这里出现 NullPointerException
}
}
@Service
public class UserService {
public String getUser(int id) {
return "User " + id;
}
}
```
我也尝试在控制器上使用 `@Component`,但没有帮助。在 `applicationContext.xml` 中我没有做任何配置——以为 Spring Boot 会自动处理一切。项目启动没有错误,但调用 `handleRequest()` 方法时抛出异常。可能的原因是什么?是否需要添加额外的注解或配置?提前感谢。