لماذا حقل Spring `@Autowired` يساوي null وكيفية إصلاح ذلك؟
مرحباً بالجميع. أنا مبتدئ في Spring وواجهت مشكلة غير مفهومة. لدي خدمة `UserService`، أريد حقنها في المتحكم (Controller) باستخدام التعليمة `@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 سيلتقط كل شيء تلقائياً. المشروع